我必须使用 ajax 从 javascript 调用 Web 服务:
$.ajax({
type: "GET",
url: "http://[REMOTE-SERVER-IP]:8080/api/service",
contentType: "application/jsonp",
crossDomain: true,
success: successFunc,
error: errorFunc
});
我读到要授予对该方法的访问权限,必须在服务器中创建"跨域.xml http://[REMOTE-SERVER-IP]:8080/crossdomain.xml:
<cross-domain-policy>
<allow-access-from domain="[SERVICE-CALLER-IP]"/>
</cross-domain-policy>
但是这样做之后,当我尝试调用该方法时,我从 javascript 调试器收到此错误:
XMLHttpRequest cannot load http://[REMOTE-SERVER-IP]:8080/[URL]. Origin http://localhost:8080 is not allowed by Access-Control-Allow-Origin
我做坏了什么?
谢谢!!!
您可以在此处选择两个选项,并且都假定您可以访问服务器。
-
第一个选项是将
callback=?
参数添加到请求 url,并修改服务器响应。服务器应按以下格式将回调函数添加到响应中callback_function_coming_from_url([your_server_response])
-
第二个选项是将标头添加到服务器响应
Access-Control-Allow-Origin: *
。或者您可以指定地址,例如Access-Control-Allow-Origin: [your_client_address]
我更喜欢选项 2,因为它是完成任务的便捷方式,而且您可以控制服务器响应,比选项 1 安全得多。
您可以从 CORS 获取更多信息