我正在编写一个连接到外部网站的简单脚本,使用jQuery抓取内容和进程。
该网站有一些安全系统可阻止与所有数据类型的ajax连接,不包括' script'和' jsonp' ' JSONP' dataType返回错误,因此我正在使用'脚本'通常成功的类型。
我试图访问那些应该是html代码但实际上是脚本的数据,因为以前强制使用dataType。
$.ajax({
type: 'GET',
url: 'http://website.com/index.php',
data: { page: "name"},
dataType: 'script',
async: false,
success: function(rsp) {
alert("Success");
console.log(rsp);
},
error: function() {
alert('Failed!');
}
});
在控制台中,我可以看到
"Uncaught SyntaxError: Unexpected token <"
来自外部网站内容的开头(<html>
....)
我也看到了&#34;成功&#34;警报,但控制台显示&#39; undefined&#39;对于&#39; rsp&#39;属性。
我试图使用document.scripts.item(index)
访问此脚本,但JS不可见
我确信该内容可以访问,因为它存在于我在Chrome中的开发人员工具中。它可以在网络选项卡中与我的jQuery链接脚本(jquery.min.js和jquery-ui.min.js)一起显示,但它应该是&#39; script&#39;尽管它的扩展名是.php。我甚至可以点击它,看看我想要的HTML代码的预览!
您对如何访问此文件有任何建议吗?也许来自缓存?
答案 0 :(得分:0)
您正在申请HTML页面,但通过将dataType
设置为"script"
,它需要JavaScript代码。它成功下载了HTML代码,但无法解析它。这就是为什么你可能会在开发工具中看到它。
出于安全原因,不允许在浏览器中使用跨域AJAX请求 唯一的例外是server especially allows it。
如果您想从其他域检索网页,则需要在服务器端执行此操作。