带有$ .ajax类型jsnop或json的自定义标头

时间:2010-09-21 10:53:43

标签: json jquery jsonp

我在使用jQuery ajax JSON(或JSONP)请求发送一些自定义标头时遇到问题。

代码如下所示:

$.ajax({
      beforeSend: function(xhr) {
        xhr.setRequestHeader("X-VER",       VER);
        xhr.setRequestHeader("X-TIMESTAMP", now);
     },
     type: 'GET',
     data: null,
     url: site_uri,
     dataType: 'jsonp',
     success: function(msg){$(selector).html(msg);}
});

Firebug没有显示自定义标题。此外,网址随jsonp更改(我可以更改吗?)

修改

我发现它可能违反http://en.wikipedia.org/wiki/Same_origin_policy,但不知道如何修复它(脚本不能在同一个域中)。

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

如果您有服务器访问权限,则解决方案为HTTP access control modification。否则,最好的想法可能是某种反向代理解决方案,我不知道Firefox之外的支持访问控制有多好。

答案 1 :(得分:0)

jsonp 不是XHR(您只是将脚本元素添加到头部),模拟XHR。因此,您无法设置自定义标头。