2014-10-12 3 views
-1

Я не получал ответы, которые, как я предполагал, использовал при использовании jQuery.post(), поэтому я просмотрел журналы своего сервера, и на самом деле получаю запрос GET. Что мне не хватает? Это потому, что я использую jsonp как мой тип данных? Вот мой jquery:jQuery.post() отправляет запрос GET?

$.post('xxx', 'server=xxx', function (data) { 
    console.log(data); 
    $.post('xxx', 'username=xxx&password=xxx', function (data) { 
     console.log(data); 
     $.get('xxx', function (data) { 
      data = $.parseJSON(data); 
      console.log(data); 
     }, "jsonp"); 
    } , "jsonp") 
}, "jsonp"); 

И мои журналы сервера четко показывают, что я отправляю запросы GET.

[11/Oct/2014 21:01:48] "GET ... 
[11/Oct/2014 21:01:48] "GET ... 
[11/Oct/2014 21:01:48] "GET ... 
+0

JSONP не может использовать POST. – SLaks

ответ

2

jsonp, по определению, путем вставки тега сценария, который запрашивает скрипт (который разрешен кросс-домен). Когда браузер обрабатывает этот тег скрипта, он превращает его в запрос GET для этого скрипта. Вы не можете выполнить POST с помощью jsonp-вызова.

Вы должны использовать jsonp только для перекрестных доменных вызовов, где вам вообще не разрешается делать POST. JSONP - это обход для междоменного доступа, но как таковой, он может выполнять только GET для файла сценария.

Смежные вопросы