jsonp作为GET发送

时间:2013-01-22 14:18:10

标签: jquery ajax elasticsearch

我上周开了另一篇帖子,因为我的弹性搜索没有返回准确的结果,请参阅ElasticSearch post

基本上发生的事情是,当我使用jsonp时,请求实际上并不是作为GET请求而是作为POST请求发送的。以下是jsonp请求。当我使用json时,它实际上是作为POST发送的。

   amplify.request.define("searchPostRequest", "ajax", {
        url: "http://leServer:9200/people/person/_search",
        type: "POST",
        dataType: 'jsonp',
        contentType: 'application/json'
    });

任何人都知道如何强制jsonp作为POST请求发送?

1 个答案:

答案 0 :(得分:2)

您无法使用POST对其他域或同一域进行JSONP调用,因为JSONP的工作原理是向页面添加脚本标记。它没有制作XMLHttpRequest。

如果你想发布数据并且它是同一个域,只需对服务器进行正常的POST ajax调用并返回JSON。

如果是跨域调用:如果您控制其他域而您只关心现代浏览器,则可以使用CORS,否则,您必须在服务器上使用代理才能使用发布请求。这两种解决方案都可以进行JSON调用,而不是JSONP。