2013-05-22 5 views
0

JSONP методы HTTP GET, кроме (POST, PUT, ВАРИАНТЫ, DELETE)

Использование JQuery встроенный в $ .ajax метода выглядит следующим образом"jquery.jsonp.js" GET работает. Как насчет POST PUT DELETE OPTIONS?

$(document).ready(function() { 
    $.ajax({ 
    type: "GET", 
    url: "http://myurl.com/webservice&callback=?", 
    ... 
}); 

Только хочу обратить внимание на линии type: "GET", С $ .ajax выполнения HTTP PUT будет просто изменить type: "PUT",

Этот пример кода происходит от JSON parsing from cross domain using jquery ajax

Не используя $ .ajax

Использование jquery.jsonp Google-кода в https://github.com/jaubourg/jquery-jsonp

Вот пример использования jquery.jsonp.js с помощью метода GET

$.jsonp({ 
    cache: false, 
    url: 'http://www.mydomain.com/logicalurl/2/', 
    callbackParameter: 'callback', 
    timeout: 10000, 
    success: function(json, textStatus, xOptions) { 
     myglob = json; 
     MyModulePatternObject.initNew(json); 
    }, 
    error: function (xOptions, textStatus) { 
    console.log("fail"); 
    } 
}); 

Это прекрасно работает. Как сделать запрос GET jsonp, это не мой вопрос.

В $ .jsonp хотелось бы выполнить другие методы http: PUT POST DELETE OPTIONS ...? Поддерживает ли $ .jsonp type="PUT",?

Это вообще не упоминается в документах: API.md и TipsAndTricks.md И в исходном коде.

UPDATE

@ohgodwhy Существует хак (фреймов/Proxy), чтобы получить POST 2 перекрестные работы доменов. Using PUT/POST/DELETE with JSONP and jQuery

@thefrontender Linked статья предлагает искать в "Cross-Origin Resource Sharing (CORS)"

поддержка CORS браузером http://caniuse.com/cors

же статье также говорится, что «Вы можете кодировать как JSON URL-адрес, но вам стыдно за то, что вы даже думаете об этом ». Во всей истории стыд никого не останавливал? Простые, ленивые и в ограниченных случаях выполняют свою работу.

Thx 4 всякие помочь ...

+0

* "Есть ли $ .jsonp поддерживает тип =" PUT "?" * Нет. –

+0

Спасибо всем. Используется ли вообще json-p? – faulkmore

+0

Да, JSONP по-прежнему широко используется. –

ответ

2

JSON-P работает, вводя тег сценария в документ: это не традиционный запрос XHR.

Таким образом, вы можете обычно выполнять только запросы GET. Вы не можете выполнять запросы PUT.

Подробнее в этой записи до: http://johnnywey.wordpress.com/2012/05/20/jsonp-how-does-it-work/

+0

Собственно, это неправильно. Это возможно, хотя и не самый простой. [Пожалуйста, смотрите здесь подробное сообщение, это потрясающе] (http://stackoverflow.com/questions/5345493/using-put-post-delete-with-jsonp-and-jquery). – Ohgodwhy

+1

@ Ohgodwhy Это очень умный хак ...но он взломан, не встроен в используемую библиотеку и не работает для PUT (о чём конкретно задан вопрос) – thefrontender

+0

Я бы сказал, что метод на связанном сообщении не использует JSONP в все, что на самом деле не помогает утверждать, что jsonp может быть выполнен как что-либо иное, кроме GET (если вы не рассматриваете одноименный запрос с использованием xhr, который использует ответы jsonp-стиля для истинного запроса jsonp). Это умный трюк, но это не jsonp. Это просто еще один способ обойти политику одного и того же происхождения. Этот ответ правильный. –

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

  • Нет связанных вопросов^_^