Mar*_*ano 7 ajax jquery post header
我正在查询使用自定义http标头进行身份验证的REST Web服务.
如果我执行没有标题的POST我得到了预期的错误,但是当我添加标题时,我得到404错误而不是我实际需要的错误.
这是我的代码
$.ajax({
type: 'POST',
url: 'http://server.com/service',
beforeSend: function (xhr) { xhr.setRequestHeader('CUSTOM-HEADER-KEY', 'CUSTOM-HEADER-VALUE') },
success: function(data) {
alert('success.');
}
});
Run Code Online (Sandbox Code Playgroud)
这是firebug标头输出:
选项 /服务HTTP/1.1主机:server.com用户代理:Mozilla/5.0(Windows NT 6.1; WOW64; rv:8.0.1)Gecko/20100101 Firefox/8.0.1接受:text/html,application/xhtml + xml ,application/xml; q = 0.9,/ ; q = 0.8 Accept-Language:en-us,en; q = 0.5 Accept-Encoding:gzip,deflate Accept-Charset:ISO-8859-1,utf-8; q = 0.7,*; q = 0.7连接:keep-alive原始:null Access-Control-Request-Method:POST Access-Control-Request-Headers:custom-header-key Pragma:no-cache Cache-Control:no-cache
和海报一起执行帖子时的smae标题,返回所需的结果.
POST/service HTTP/1.1主机:server.com用户代理:Mozilla/5.0(Windows NT 6.1; WOW64; rv:8.0.1)Gecko/20100101 Firefox/8.0.1接受:text/html,application/xhtml + xml ,application/xml; q = 0.9,/ ; q = 0.8 Accept-Language:en-us,en; q = 0.5 Accept-Encoding:gzip,deflate Accept-Charset:ISO-8859-1,utf-8; q = 0.7,*; q = 0.7连接:keep-alive CUSTOM-HEADER-KEY:CUSTOM-HEADER-VALUE Pragma:no-cache Cache-Control:no-cache Content-Length:0
差异非常明显,但我不知道我在jquery代码中做错了什么.
有人可以帮帮我吗?
小智 5
在跨域请求中,如果服务浏览器不允许标头,则只需删除它
首先,浏览器浏览器将进行OPTION调用以检查允许的内容(Origin,Headers,Methods)
在您的服务配置中,您必须允许标头才能使用它将其发送到服务器
Access-Control-Allow-Headers: YOUR_HEADER_NAME
Run Code Online (Sandbox Code Playgroud)
这可能有帮助,也可能没有帮助,但我认为您可以在数据选项中添加标题:
$.ajax({
type: 'POST',
data: put the results of your header request here,
url: 'http://server.com/service',
beforeSend: function (xhr) { xhr.setRequestHeader('CUSTOM-HEADER-KEY', 'CUSTOM-HEADER-VALUE') },
success: function(data) {
alert('success.');
}
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
12351 次 |
最近记录: |