#jquery #ajax
Вопрос:
У меня есть этот вызов ajax на другой домен:
$.ajax({
type: "POST",
url: url,
data: $form.serialize(), // serializes the form's elements.
dataType: "jsonp",
processData: false,
jsonp: "callback",
success: function(data)
{
console.log("Passed it");
console.log(callback(response));
}
Даже если запрос является сообщением, я получаю сообщение с очень длинным URL-адресом, как это:
http://example.com?param1=’значение’amp;param2=»значение»и т. Д…..
Это моя ошибка: ERR_ABORTED 414 (Слишком длинный URI запроса)
проблема в том, что моя форма огромна, в ней около 40 различных полей.
Я использую jsonp, потому что это другой домен и данные процесса:false, потому что у меня был обратный вызов по URL.
Пожалуйста, помогите, я не знаю, что я делаю не так.
Комментарии:
1. Вы делаете запрос AJAX, когда
form
элемент отправляется? Если это так, то, похоже, вы не предотвратили отправку стандартной формы и отправили запрос GET вместо сообщения, поступающего от вашего AJAX. Однако использование JSONP иprocessData: false
не окажет абсолютно никакого влияния на запрос, если заголовки CORS не включены в ответ от вызываемой вами конечной точки. Вам нужно будет добавить их туда, предполагая, что они еще не существуют, — а я предполагаю, что это не так, иначе вы бы не пытались использовать JSONP.2. да, это запрос ajax при отправке формы. Метод формы-тоже POST. Моя конечная точка находится на Laravel, я добавил заголовки в промежуточное программное обеспечение
3. Другая проблема заключается в том, что вы можете делать запросы GET только с помощью JSONP. Это по замыслу и поэтому ваш
type: "POST"
переопределяется4. о, хорошо, значит, мне нужно решить проблему с CORS, если я не хочу отправлять ПОЧТУ, верно?
5. Верно. Тогда вы можете избежать использования JSONP и отправить запрос POST как обычно