回答
这是一个非常简单的教程:http://developer.yahoo.com/javascript/howto-proxy.html
基本上,你做这需要一个XMLHttpRequest服务,并有从外部域请求数据,然后返回结果。
您可以使用$ .ajax()调用。
这有属性crossdomain:它处理跨域请求。
http://api.jquery.com/jQuery.ajax/
对于跨域请求使用jQuery看看在 http://net.tutsplus.com/tutorials/javascript-ajax/quick-tip-cross-domain-ajax-request-with-yql-and-jquery/
你可以添加代码示例 - 我如何使用它而不是xmlHttpRequest(例如DELETE请求,而不是POST或GET请求)。 – 2011-05-16 11:26:13
这个属性实际上是否会取代代理的需求,例如在google.ca上执行ajax请求? – 2011-05-16 11:27:49
@Erik:编辑答案 – dhinesh 2011-05-16 11:54:28
JSONP正是用于此目的
JSONP或“JSON具有填充”是 补充到基座JSON数据 格式,使用模式,其允许 一个页面从服务器请求数据 在不同的域中。作为针对此问题的解决方案 ,JSONP是 替代称为跨源资源共享的更新方法 。
这是JSONP实现的非常非常基本的例子。
服务器端代码 -
public string GetFirstName()
{
string callback = Request.QueryString["callback"];
string resultJson = "{\"FirstName\": \"archil\"}"; //should definitely be some more application specific data :)
if (!string.IsNullOrEmpty(callback))
{
return string.Format("{0}({1})", callback, resultJson);
}
return resultJson;
}
此方法被映射到/ URL的getFirstName上服务器。它从查询字符串中提取参数callback
。并将生成的resultJson封装为javascript函数调用,其中函数的名称是使用回调传递的参数。
,使用jQuery - 实现很简单,只要
$(function() {
$.ajax('http://serverUrl/GetFirstName', {
dataType: 'JSONP',
jsonpCallback: 'alert'
});
});
这将传递函数名alert
回调服务器。服务器将返回alert({"FirstName": "archil"})
。 jQuery将自动检查这个响应并执行它。因此,您将在浏览器中获得标准警报屏幕。主要思想是执行alert
将服务器的返回参数。您可以将更多特定的函数名称作为jsonpCallback传递,并根据请求的结果进行操作。
我知道,这里使用的URL模式更像REST风格的RPC样式的Web服务,但例子是关于使用JSONP,不是REST架构
以下基本步骤来创建这样的代理。
- 创建服务器端页面(使用PHP或ASP.NET这样的服务器端语言并不重要)并将其称为例如“MyProxy”。aspx“
- 在服务器端代码中,读取通过URL或POST数据发送的数据,并将该数据作为Web请求发送到外部网站(在.NET的情况下,在PHP和其他语言中肯定是等效的)。
- 解析从外部网站发送的结果并将其发送回客户端
- 在客户端,向代理页面(例如MyProxy.aspx)发送AJAX请求,并传递适当的数据并处理响应。
让我们知道您正在使用的服务器端语言更多的技术帮助实现上述。
- 1. 跨域XMLHttpRequest验证网站存在?
- 2. XMLHttpRequest跨站点脚本?
- 3. 跨站点XMLHttpRequest - 何时?
- 4. Firefox中的跨站点XmlHttpRequest?
- 5. Xmlhttprequest跨站点域问题?
- 6. xmlHttpRequest到Flash网站
- 7. XMLHTTPRequest大小限制
- 8. XMLHttpRequest无法加载https:// [网站] .com不支持跨域请求
- 9. iphone html应用程序 - 跨站点xmlhttprequest?
- 10. 的XMLHttpRequest,发送和安全限制
- 11. 网站上的XMLHttpRequest错误
- 12. 网站的Div限制
- 13. Magento网站数量限制
- 14. 限制访问网站
- 15. 限制S3权限,只是网站
- 16. Drupal的 - 限制权限的网站
- 17. XMLHttpRequest的getResponseHeader()的限制?
- 18. Ajax XMLHttpRequest对象限制
- 19. 的XmlHttpRequest跨域
- 20. 跨域XMLHttpRequest
- 21. XMLHttpRequest跨域
- 22. 跨域XMLHttpRequest的?
- 23. 跨域限制
- 24. AuthenticationForm - 跨网站Cookie
- 25. 在Cocoa中从WebView制作跨域XMLHttpRequest
- 26. Firebase推特认证和跨网站scription
- 27. 跨域类限制
- 28. 今天同步XMLHttpRequest破坏了网站
- 29. javascript:使用XMLHttpRequest登录网站
- 30. 跨域限制和子域名
[Cross-site XMLHttpRequest]可能重复(http://stackoverflow.com/questions/395045/cross-site-xmlhttprequest) – Hamish 2014-01-10 06:09:27