我跟随这个例子:
http://www.html5rocks.com/en/tutorials/cors/#toc-cors-from-jquery
这是我的代码:
<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
</head>
<body>
<script>
$(document).ready(function(){
$.getJSON("http://172.28.101.197:3000/tests.json",function(config){
var create_config_url = "https://act.domain.com/act2/act/createConfigfile?accountid=" + config.accountId + "&configfilename=" + config.name
alert ("here goes nothing!");
$.ajax({
// The 'type' property sets the HTTP method.
// A value of 'PUT' or 'DELETE' will trigger a preflight request.
type: 'GET',
// The URL to make the request to.
url: create_config_url,
// The 'contentType' property sets the 'Content-Type' header.
// The JQuery default for this property is
// 'application/x-www-form-urlencoded; charset=UTF-8', which does not trigger
// a preflight. If you set this value to anything other than
// application/x-www-form-urlencoded, multipart/form-data, or text/plain,
// you will trigger a preflight request.
contentType: 'text/plain',
xhrFields: {
// The 'xhrFields' property sets additional fields on the XMLHttpRequest.
// This can be used to set the 'withCredentials' property.
// Set the value to 'true' if you'd like to pass cookies to the server.
// If this is enabled, your server must respond with the header
// 'Access-Control-Allow-Credentials: true'.
withCredentials: false
},
headers: {
// Set any custom headers here.
// If you set any non-simple headers, your server must include these
// headers in the 'Access-Control-Allow-Headers' response header.
},
success: function() {
alert( "I think I created a config" );
// Here's where you handle a successful response.
},
error: function() {
alert ("That's an error!");
// Here's where you handle an error response.
// Note that if the error was due to a CORS issue,
// this function will still fire, but there won't be any additional
// information about the error.
}
//$.get(create_config_url,function(result){
});
});
});</script>
</body>
</html>
我收到以下错误:
XMLHttpRequest cannot load https://act.domain.com/act2/act/createConfigfile?accountid=AANA-EJ8SB&configfilename=rabdelaz.netstorage-pm.com. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.
答案 0 :(得分:0)
尝试添加:crossDomain:true
您还可以尝试:contentType:“jsonp”
答案 1 :(得分:0)
从它的外观来看,您尝试与之通信的服务器似乎没有启用CORS。如果它具有您发送GET请求的域不在服务器允许的域中白名单。我没有看到任何关于ajax的问题。如果你想了解更多关于CORS的信息,我最近写了一篇关于CORS here的详细文章。希望有所帮助
答案 2 :(得分:0)
我真的不知道你正在使用的后端语言是什么,但是你需要使用jsonp来使它更安全和跨域:真。
在这种情况下,Access-Control-Allow-Origin: *
星号可以是允许的主机
Access-Control-Allow-Methods: POST, GET, OPTIONS
确保您的方法在列表中。