上周,我打开了另一条帖子,因为我的 flex 搜索未返回准确的结果,请参见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请求发送?
最佳答案
您无法使用POST对另一个域或同一域进行JSONP调用,因为JSONP可以通过向页面添加脚本标记来起作用。它没有发出XMLHttpRequest。
如果要发布数据并且它是同一个域,只需对服务器进行常规的POST ajax调用并返回JSON。
如果是跨域调用:如果您控制另一个域,并且只关心现代浏览器,则可以使用CORS;如果不是,则必须在服务器上使用代理进行发布请求。这两个解决方案都将进行JSON调用,而不是JSONP。
关于jquery - jsonp作为GET发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14460665/