我尝试在我的Javascript中执行xmlHttpRequest
到另一台服务器上运行的Restful Web服务。我指定了
"XMLHttpRequest cannot load 'URL'.Origin 'localhost' is not allowed by Access-Control-Allow-Origin.
谷歌搜索后我知道我不能跨域XmlhttpRequest
。
我想知道从我的Javascript实现跨域Web服务调用的最佳方法是什么。
答案 0 :(得分:0)
您好我正在使用我的申请
function CrossDomainAjax(url, data, callback){
$.ajax({
type: "GET",
url: url,
data: data,
contentType: "application/json; charset=utf-8",
dataType: "jsonp",
jsonpCallback: callback
});
}
现在为服务器端功能
它应该返回jsonp,就像这样
callBack({your:json});
答案 1 :(得分:0)
您需要在服务器上进行更改以允许来自localhost服务器的请求。您可以在apache的httpd-vhosts.conf文件中更改设置:
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.com
DocumentRoot “C:/apache-tomcat-6.0.29/webapps/myApplication”
ServerName skill-guru.com
ErrorLog “logs/skg1-error.log”
CustomLog “logs/skg1-access.log” common
Header set Access-Control-Allow-Origin “*”
<Directory “C:/apache-tomcat-6.0.29/webapps/myApplication”>
Options -Indexes FollowSymLinks
AllowOverride AuthConfig FileInfo
Order allow,deny
Allow from all
</Directory>
JkUnmount /*.jsp ajp13
</VirtualHost>
现在在apache服务器中设置该值并查看标题后会看到
HTTP/1.1 200 OK
Date: Mon, 01 Dec 2008 00:23:53 GMT
Server: Apache/2.0.61
Access-Control-Allow-Origin: *
Keep-Alive: timeout=2, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: application/xml
这实质上意味着您的Web服务应用程序的服务器正在向任何调用者提供请求。