Atn*_*nNn 15 javascript php ajax jquery
运行的javascript应用程序10.0.0.1尝试使用跨域ajax调用对其用户进行身份验证.
请求如下:
function test(again){
$.ajax({
type: 'GET',
url: 'http://example.com/userinfo',
dataType: 'json',
success: function(userinfo){
if(again)
test(false);}});}
test(true);
Run Code Online (Sandbox Code Playgroud)
服务器的第一个响应尝试设置cookie:
Access-control-allow-origin:http://10.0.0.1
Set-Cookie:PHPSESSID=uuj599r4k1ohp48f1poobil665; expires=Sat, 28-Jan-2012 17:10:40 GMT; path=/
Run Code Online (Sandbox Code Playgroud)
但第二个请求不包括此cookie,也不包括对该域的任何其他ajax请求.
我不是想为另一个域读取cookie,我只是希望其他域上的应用程序能够设置和读取自己的cookie.
这可能吗?
我在Chrome和Firefox 9中测试过.
小智 11
服务器应该设置标头:
response.Headers.Add("Access-Control-Allow-Credentials", "true");
Run Code Online (Sandbox Code Playgroud)
客户端设置为:
xhrFields: {
withCredentials: true
}
Run Code Online (Sandbox Code Playgroud)
Deb*_*dez 10
只要您使用支持CORS的浏览器,AJAX请求上的cookie就可以运行.但你必须设置withCredentials的XMLHttpRequest为true.
我不使用JQuery,但这是一个专门处理withCredentials通过JQuery 设置的问题.
| 归档时间: |
|
| 查看次数: |
18950 次 |
| 最近记录: |