我有JavaScript代码,它向小型java套接字程序发送请求,JavaScript代码在Jav应用程序上运行在域,而小Java代码在diffrenr域中运行。现在我想发送请求,然后接收来自小程序的响应,但是我在浏览器FireFox上得到了一个错误:
“跨源请求被阻止:相同的原产地策略不允许在
当我运行代码时IE ..its好吗?
java脚本代码
<script type="text/javascript">
// <!--//--><![CDATA[//><!--
var getJSON = function (url, successHandler, errorHandler) {
var xhr = new XMLHttpRequest();
if (window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
}
if (typeof XMLHttpRequest === "undefined")
XMLHttpRequest = function () {
try {
return new ActiveXObject("Msxml2.XMLHTTP.6.0");
}
catch (e) {
}
try {
return new ActiveXObject("Msxml2.XMLHTTP.3.0");
}
catch (e) {
}
try {
return new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
}
throw new Error("This browser does not support XMLHttpRequest.");
};
xhr.open('get', url, true);
xhr.setRequestHeader("Cache-Control", "no-cache");
xhr.onreadystatechange = function () {
var data;
if (xhr.readyState === 4) {
if (xhr.status === 200) {
data = JSON.parse(xhr.responseText);
var imgDoc = document.getElementById("search_sources_form:image");
imgDoc.value = data['img'];
remoteChangeCommand();
xhr.abort();
}
}
};
xhr.send();
};
function scanData() {
getJSON('http://10.0.10.59:2000/image=1;', function (data) {
alert('Your public IP address is: ' + data);
}, function (status) {
alert('Something went wrong.');
});
}发布于 2015-11-17 15:33:10
为阻塞的域启用跨源请求,它将工作。
下面的示例取自html5boilerplate的apache服务器配置。有关详细信息,请访问链接。
# ----------------------------------------------------------------------
# | Cross-origin requests |
# ----------------------------------------------------------------------
# Allow cross-origin requests.
# https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS
# http://enable-cors.org/
# http://www.w3.org/TR/cors/
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "http://example.com/"
</IfModule>https://stackoverflow.com/questions/33759241
复制相似问题