запрос jquery/ajax CORS возвращает GET

#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 как обычно