我正在尝试使用ajax调用登录我的wordpress网站,我在previous question询问。它不应该回应任何回应。但每当我称之为ajax函数时,Firefox(firebug)显示200 OK红色。这必须是跨域问题。到目前为止尝试了太多但没有运气的东西。这是代码:
$.ajax({
type: "POST",
url: "http://path-to-wordpress/wp-login.php",
data:myData
success: function(data){
},
error: function (xhr, ajaxOptions, thrownError) {
}
});
任何建议都将受到赞赏。
答案 0 :(得分:2)
我假设你的JS代码在abc.com
,你的wordpress网站是dev.abc.com
。
要解决跨域问题,只需将以下代码添加到.htaccess
文件到您的wordpress网站(dev.abc.com
)
SetEnvIf Origin "^http(s)?://(.+\.)?(abc\.com)$" origin_is=$0
Header always set Access-Control-Allow-Origin %{origin_is}e env=origin_is
只需使用正确的网站名称替换(abc\.com)
即可。例如:(google\.com)
或(yahoo\.com)
答案 1 :(得分:1)
在ajax调用中将dataType设置为JSONP
,它将在跨域工作
参考ajax呼叫访问jQuery Ajax
答案 2 :(得分:1)
有一个名为$ .ajax的crossDomain的属性。请将其设置为true。
答案 3 :(得分:0)
您需要在wp-login.php
页面添加CORS headers。
但考虑到页面的性质,请格外小心:不允许所有来源(*),只允许您的网站。如果您允许所有人,您的用户可能会盗取他们的登录信息。