$(document).ready(function(){
$.ajaxSetup({
xhrFields: {
withCredentials: true
},
crossDomain: true
});
function user_login(username, password, rememberme){
var request = $.post(
'http://api.example.com/user/login',
{
'username': username,
'password': password,
'rememberme': rememberme
},
'json'
);
request.done(function(res){
...
});
request.fail(function(res){
alert('Request failed. Please try again.');
});
}
});
<?php
/* ALLOW CORS */
$http_origin = $_SERVER['HTTP_ORIGIN']);
$allowed_http_origins = array( "http://other.example.com",
"http://www.example.com",
"http://player.example.com",
"http://app.example.com",
"http://example.com"
);
if(in_array($http_origin, $allowed_http_origins)){
header('Access-Control-Allow-Origin: '. $_SERVER['HTTP_ORIGIN']);
header('Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS');
header('Access-Control-Max-Age: 1000');
header('Access-Control-Allow-Headers: Content-Type, Authorization, X-Requested-With');
}
/* RETURN INFO */
$return = array(
'code' => 200,
'text' => 'Succesfully logged in!'
);
echo json_encode($return);
?>
再次问好Stackoverflow,
在我目前的应用程序中,我想在一个自编的api上用AJAX登录用户。 这是当前的设置,但我仍然在控制台中收到错误:
XMLHttpRequest无法加载http://api.example.com/user/login。没有 请求中存在“Access-Control-Allow-Origin”标头 资源。因此,不允许原点“http://example.com”访问。
我该怎么做才能解决这个问题?问题是什么?
提前致谢。