如何使AJAX请求看起来像常规的正常请求

我必须设置$.ajax上的哪些参数来尝试将AJAX请求作为普通请求进行掩码? 我想这与正确的标题有关。

我认为问题的一个重要部分是当处理本地.html文件时,jQuery将Origin的header-value设置为null

有没有办法取出Origin-header?

在这一刻,如果我通过网络浏览器浏览它并且当我执行jQuery AJAX请求时,我会从同一个URL获得不同的结果

使用jQuery发送的AJAX请求与普通请求 (无论您的正常请求是什么意思)相比,唯一不同的是X-Requested-With: XMLHttpRequest添加的X-Requested-With: XMLHttpRequest HTTP标头。 可以像这样删除此标头:

 $.ajax({ url: '/foo', type: 'POST', data: { bar: 'baz' }, beforeSend: function(xhr) { xhr.setRequestHeader( 'X-Requested-With', { toString: function() { return ''; } } ); }, success: function(result) { alert(result); } }); 

或全局,对于您网站上的所有AJAX请求:

 $.ajaxSetup({ beforeSend: function(xhr) { xhr.setRequestHeader( 'X-Requested-With', { toString: function() { return ''; } } ); } }); 

由于所有现代浏览器都强制执行同源策略 , 因此这是不可能的

  1. jQuery没有设置Origin Header。 只有浏览器本身才能做到。 并且jQuery(或javascript)对此标头没有任何影响力。

  2. 这是一个关于Origin Header案例的链接,设置为null Null Origin Header

  3. jquery和常规请求之间的唯一区别确实是X-Requested-With:XMLHttpRequest您可以手动删除它,或者您可以使用新的XMLHttpRequest或fetch()发出请求。

祝好运