我一直在使用Ripple Emulator,但重新安装后,在请求跨域资源时不再使用XHR CORS代理。
我在Internet not accessible from ripple emulator
中尝试了建议的测试代码var xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", "http://www.bing.com", true);
xmlhttp.send();
但请求未通过Ripple XHR代理传递。
请求:
GET / HTTP/1.1
Host: www.bing.com
Connection: keep-alive
Origin: http://localhost:4400
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.97 Safari/537.36
Accept: */*
Referer: http://localhost:4400/
Accept-Encoding: gzip, deflate, sdch
Accept-Language: da,en;q=0.8,en-US;q=0.6
错误:
XMLHttpRequest cannot load http://www.bing.com/. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:4400' is therefore not allowed access.
跨域代理设置为:local
似乎启动了代理:
INFO: Server instance running on: http://localhost:4400
INFO: CORS XHR proxy service on: http://localhost:4400/ripple/xhr_proxy
INFO: JSONP XHR proxy service on: http://localhost:4400/ripple/jsonp_xhr_proxy
Cordova 3.0 Project detected...
INFO: Could not find cordova as a local module. Expecting to find it installed globally.
INFO: Using Browser User Agent (String)
refreshing project (platform: android) ...
... done.
有关我在这里做错了什么的建议吗?
答案 0 :(得分:0)
在其他帖子中,人们建议使用Chrome CORS扩展程序,但自Chrome 48起,所有CORS扩展程序似乎都停止了工作。
我在Visual Studio, Ripple Emulator and CORS/Cross Domain Ajax发布了此解决方法,但我将在下面再次概述:
此快捷方式允许您在没有网络安全的情况下运行Chrome,这允许在Ripple中使用CORS。通过使用快捷方式,这不会影响您正常使用Chrome。现在为了使用Ripple
请注意,Visual Studio刚刚用于启动Ripple。需要使用Chrome的开发人员工具进行调试。
另请注意,您可以浏览到网址chrome:// version /
,仔细检查Chrome是否正在使用您的快捷方式标记请记住在设备上进行测试,但是一旦您确认您的应用正常运行,上述调试就更容易了。