我知道有一些关于“No'Access-Control-Allow-Origin'标题”的问题已经存在,但这个问题有所不同。 我保证。通常在过去,我一直在使用RESTful API,但是使用ideone我必须使用SOAP协议,这是我以前从未使用过的。所以,我正在使用doedje's js file向ideone的API发送请求,只是为了让自己更容易。唯一的问题是我遇到了可怕的错误:
XMLHttpRequest cannot load http://ideone.com/api/1/service/createSubmission. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:8080' is therefore not allowed access.
我在doedje的文件中看到你可以添加HTTP标头,所以我的请求现在看起来像这样:
$.soap({
enableLoggin: true,
url:"http://ideone.com/api/1/service/",
method:"createSubmission",
data: {
user:ideoneUser[0],
pass:ideoneUser[1],
HTTPHeaders:{
"Origin":"*",
"Access-Control-Allow-Headers":"Content-Type"
},
sourceCode:"console.log(\"Hello\");",
language:56,
input:"1",
run:true,
private:false
},
sucess: function(soapResponse){
console.log(soapResponse.toJSON().key + " " + soapResponse.toJSON().link);
},
error: function(soapResponse){
console.log(soapResponse.toJSON().error);
}
});
重点介绍Access-Control-Allow-Headers和Origin参数。由于我不能使用JSONP发送信息,我必须使用标头。这一切对我来说都是正确的,但我似乎无法让它工作。如果它让你更容易,我可以发送整个Express项目,但我认为这是唯一对问题很重要的部分。
谢谢你的帮助!