我编写了一个Web应用程序,它使用了许多$.post
调用JQuery。现在我想发送withCredentials: true
来保持会话活着,在$.ajax
中看起来像这样(并且也是这样的):
$.ajax({
type: 'post',
url: 'http://example.com/server/api.php',
crossDomain: true,
dataType: "json",
xhrFields: {
withCredentials: true
},
data: {
username : 'test',
password : 'test'
},
success: function (d) {
$('body').html(d.status);
}
});
这是因为我现在想将PHP文件上传到我的服务器并使用Cordova导出客户端。 (withCredentials: true
仅包含在我的localhost服务器上的测试中)
我可以将其打包到$.post
电话中,还是需要更换所有电话? (我会写一个类似于$ .post的新函数)
答案 0 :(得分:17)
您可以使用jQuery.ajaxSetup()设置每个ajax请求将使用的默认选项(包括$.post
和$.get
)
$.ajaxSetup({
crossDomain: true,
xhrFields: {
withCredentials: true
},
username: 'test',
password: 'test'
});
$.post('http://example.com/server/api.php', {
username: 'test',
password: 'test'
}, function (d) {
$('body').html(d.status);
}, 'json');
此API的警告
来自jQuery文档的注意:此处指定的设置将影响对$ .ajax的所有调用或 基于Ajax的衍生产品,例如$ .get()。这可能导致不良后果 因为其他调用者(例如插件)可能会期待这种行为 正常的默认设置。出于这个原因,我们强烈建议 反对使用此API。相反,在。中明确设置选项 调用或定义一个简单的插件来执行此操作。