跨域 Web 服务调用



可能的重复项:
跨域XHR/AJAX:可能的解决方法?

我试图从我的Javascript中xmlHttpRequest到在另一台服务器上运行的Restful Web服务。我收到一个 JS 错误,指定

"XMLHttpRequest cannot load 'URL'.Origin 'localhost' is not allowed by Access-Control-Allow-Origin.

谷歌搜索后,我知道我不能跨域进行XmlhttpRequest

我想知道从我的 Javascript 实现跨域 Web 服务调用的最佳方法是什么。

嗨,

我正在我的应用程序中
使用它

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});

您需要在服务器上进行更改以允许来自本地主机服务器的请求。更改 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 服务应用程序的服务器正在向任何调用方提供请求。

相关内容

  • 没有找到相关文章

最新更新