猿问

为什么我要得到一个选项请求而不是一个GET请求?

为什么我要得到一个选项请求而不是一个GET请求?

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js" type="text/javascript"></script><script>
$.get("http://example.com/", function(data) {
     alert(data);});</script>

它对该URL执行选项请求,然后从不使用任何内容调用回调。

当它不是跨域时,它可以正常工作。

难道jQuery不应该只使用<script>节点,然后在加载时执行回调?我知道我无法得到结果(因为它是跨域的),但没关系,我只想通过调用。这是个窃听器,还是我做错了什么?


MM们
浏览 588回答 3
3回答

慕森王

根据MDN,预先公布的请求与简单的请求(前面讨论过)不同,“预置”请求首先向另一个域上的资源发送HTTP选项请求头,以确定实际请求是否安全发送。跨站点请求是这样预先设定的,因为它们可能会对用户数据产生影响。特别是,如果:它使用的方法不是GET或POST。此外,如果POST用于发送内容类型以外的请求数据,而不是application/x-www-form-urlencode、多部分/表单-数据或文本/纯文本,例如,如果POST请求使用application/xml或text/xml向服务器发送XML有效负载,则请求是预先处理的。它在请求中设置自定义标头(例如,请求使用一个标头,如X-PINGOTHER)
随时随地看视频慕课网APP
我要回答