服务器端判断了request来自Ajax请求(异步)还是传统请求(同步),怎么办?

我猜测服务器端通过x-requested-with 请求头限制了ajax请求,请参照http://holdbelief.iteye.com/blog/528114
我是在开发一个chrome插件,我目前使用ajax就获取不到json了,我应该怎样绕过限制呢?

request.setRequestHeader

http://www.cnblogs.com/chenxizhang/archive/2010/02/28/1675259.html

如果是判断了请求头,你无法更改x-requested-with这个请求头,只能你服务器做代理页面了。。~

没研究过chrome插件,不知道能否跨域获取iframe的内容,如果chrome插件可以,你可以通过iframe来加载数据,而不是用ajax

那你开一个backend的同步请求数据好了

参考Remove X-Requested-With from the jQuery Ajax request
如果你使用的是jquery的话,通过beforeSend前设置xhr.setRequestHeader函数来覆盖默认的X-Requested-With设置
你可以点击查看演示代码,在IE11上测试有效。

$(function(){
    $.ajax({
        url: '/echo/json',
        beforeSend: function(xhr){
            xhr.setRequestHeader('X-Requested-With', {
                toString: function(){return '';}
            });
        },
        success: function( data ) {
            if (console && console.log){
                console.log(
                    'Got data without the X-Requested-With header'
                );
            }
        }
    });
});