damdmen
damdmen
  • 发布:2015-10-30 22:03
  • 更新:2015-11-08 21:52
  • 阅读:11523

跨域时Access-Control-Allow-Origin问题

分类:MUI

做的一个APP打算把论坛上的帖子抓取过来,但是有时会报错

XMLHttpRequest cannot load http://www.xxx.com/xxx.html. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:8020' is therefore not allowed access."

以前是偶尔报错,现在是每次都报错了。。。

这个怎么办,node.js不会,用javascript抓取网页只能用ajax了吧,请问该如何解决?

---------------------------------谢谢各位的回复,自己找到问题在哪了--------------------------------------

真机调试时,浏览器不能跨域,手机是可以正常跨域的,把控制台 调到手机 就能正常看到跨域后的结果了

报出这种错误 都是在 “边改边看控制台”里显示的。

如果还是不行,就重连手机,重启基座APP试试。

2015-10-30 22:03 负责人:无 分享
已邀请:
mobilepo

mobilepo

document.addEventListener('plusready', function(){  
var xhr = new plus.net.XMLHttpRequest();  
xhr.onreadystatechange = function () {  
	switch ( xhr.readyState ) {  
		case 0:  
			alert( "xhr请求已初始化" );  
		break;  
		case 1:  
			alert( "xhr请求已打开" );  
		break;  
		case 2:  
			alert( "xhr请求已发送" );  
		break;  
		case 3:  
			alert( "xhr请求已响应");  
			break;  
		case 4:  
			if ( xhr.status == 200 ) {  
				alert( "xhr请求成功:"+xhr.responseText );  
			} else {  
				alert( "xhr请求失败:"+xhr.readyState );  
			}  
			break;  
		default :  
			break;  
	}  
}  
xhr.open( "GET", "http://www.baidu.com/" );  
xhr.send();  
}, false );
chender

chender - 与人为善

是用的5+中的httpRequest吗

  • damdmen (作者)

    用的是mui.ajax


    2015-10-30 22:22

  • chender

    那就奇怪了,用mui.ajax应该是美玉==没有跨域访问的问题啊,你直接使用plus.XMLHttpRequest试一下


    2015-10-30 22:31

mobilepo

mobilepo

php 例子 自己照着改改吧。

        header("Access-Control-Allow-Origin: *");  
        header("Access-Control-Allow-Methods: GET, POST");  
        header("Access-Control-Allow-Headers: Origin, No-Cache, X-Requested-With, If-Modified-Since, Pragma, Last-Modified, Cache-Control, Expires, Content-Type, X-E4M-With");
  • damdmen (作者)

    我是抓取别人网站的数据,怎么改别人服务端啊。。。


    2015-10-31 11:37

  • mobilepo

    抓取别人的用 XMLHttpRequest


    2015-10-31 15:33

damdmen

damdmen (作者) - 社交app创业中,求靠谱合伙人

自己知道问题在哪了

之际调试时,浏览器不能跨域,手机是可以正常跨域的,把控制台 调到手机 就能正常看到跨域后的结果了

报出这种错误 都是在 “边改边看控制台”里显示的。

如果还是不行,就重连手机,重启基座APP试试。

  • damdmen (作者)

    意思是你的电脑上Hbuilder里的浏览器是不能跨域的,手机是可以的


    2016-04-06 15:00

该问题目前已经被锁定, 无法添加新回复