jquery – 如何使用dataType:’jsonp’但仍然在Accept头中有application / json?

我想访问另一个域上的REST服务.如果,在JQuery中,我指定:

dataType: 'json'

正如预期的那样,它失败了,因为对于跨域调用,必须使用JSONP.

当我将其更改为:

dataType: 'jsonp'

它应该工作,但失败,因为服务器期望由JSONP请求发送的application / json或application / xml或text / html等,但不是* / *.

有没有办法强制JQuery在执行JSON请求时将application / json放入Accept请求头?

最佳答案
AFAIK jQuery的JSONP实现使用< script>注入DOM的标记(因此仅对GET动词的限制),您无法控制其接受请求内容类型标头.此脚本标记的src只是指向远程域URL.浏览器只是简单地获取发送常规GET请求的基础端点.

因此,如果您希望能够为跨域调用设置请求标头,则必须在域上设置服务器端脚本,该脚本将调用委托给远程域(并设置相应的标头),然后将AJAX请求发送到你的脚本.

转载注明原文:jquery – 如何使用dataType:’jsonp’但仍然在Accept头中有application / json? - 代码日志