【发布时间】:2017-09-09 06:43:49
【问题描述】:
我正在尝试从网站获取一些跟踪信息并尝试使用 load 和 ajax 但我收到以下错误:
XMLHttpRequest 无法加载 http://www.tuffnells.co.uk/PODLookupResults.aspx?__EVENTTARGET=&__EVENTARGU…%24tbDestPostcode=AL15BY&ctl00%24maincontent%24btnDoPODLookup=Search+Again。请求的资源上不存在“Access-Control-Allow-Origin”标头。
我尝试过的:
<div id="tracking"></div>
<script type="text/javascript">
$(document).ready(function(){
$("#tracking").load( "http://www.tuffnells.co.uk/PODLookupResults.aspx?__EVENTTARGET=&__EVENTARGUMENT=&__VIEWSTATEGUID=7ca82b1d-b722-4cdc-b74a-b338d8577ffa&__VIEWSTATE=&__EVENTVALIDATION=%2FwEdAAevVXD1oYELeveMr0vHCmYPaomE%2FDwQD43eOdzEj3p%2Fm4U4pgxq6tlupSJfQZQBazFFj%2F1LmlGLyHFagz1yHZm8bjowVgAJ8C3e%2B2bVMPt91KjXCHjnAsonQDi2zFSuasUVzpitHiLDCDtiLHCjNCQG4CxrbV5VPFqBeOgs2X52AD%2FEb%2BYR%2BEJ68PaN2CiyKzE%3D&ctl00%24ctl16%24tbHeaderSearch=Search..&ctl00%24maincontent%24tbAccountRef=01484267&ctl00%24maincontent%24tbConsignmentRef=2837&ctl00%24maincontent%24tbDestPostcode=AL15BY&ctl00%24maincontent%24btnDoPODLookup=Search+Again #ctl00_maincontent_pnlPODRecords" );
});
</script>
和
<div id="tracking"></div>
<script type="text/javascript">
$(document).ready(function(){
var url = "http://www.tuffnells.co.uk/PODLookupResults.aspx?__EVENTTARGET=&__EVENTARGUMENT=&__VIEWSTATEGUID=7ca82b1d-b722-4cdc-b74a-b338d8577ffa&__VIEWSTATE=&__EVENTVALIDATION=%2FwEdAAevVXD1oYELeveMr0vHCmYPaomE%2FDwQD43eOdzEj3p%2Fm4U4pgxq6tlupSJfQZQBazFFj%2F1LmlGLyHFagz1yHZm8bjowVgAJ8C3e%2B2bVMPt91KjXCHjnAsonQDi2zFSuasUVzpitHiLDCDtiLHCjNCQG4CxrbV5VPFqBeOgs2X52AD%2FEb%2BYR%2BEJ68PaN2CiyKzE%3D&ctl00%24ctl16%24tbHeaderSearch=Search..&ctl00%24maincontent%24tbAccountRef=01484267&ctl00%24maincontent%24tbConsignmentRef=2837&ctl00%24maincontent%24tbDestPostcode=AL15BY&ctl00%24maincontent%24btnDoPODLookup=Search+Again";
$.ajax({
url:url,
type:'GET',
success: function(data){
$('#tracking').html($(data).find('#ctl00_maincontent_pnlPODRecords').html());
}
});
});
</script>
有人有什么想法吗?我需要将跟踪详细信息放入我们的跟踪页面,因为它们不提供 API。
【问题讨论】:
-
除非站点配置为允许跨域请求,否则您无法从您的应用加载任何域。在这里阅读:developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS
-
显然他们不希望您在任何随机的第三方网站上使用他们的数据。也就是说,您可以通过谷歌搜索您的消息错误以获取替代服务器端。但是,如果其他人未经您自己的批准使用您的数据/服务器带宽,您会怎么想?想一想……
-
您可以尝试从后端删除网站,然后使用 ajax 将其加载到前端。试试simplehtmldom.sourceforge.net
-
Api 用于连接到他们的公司 - 只选择它们,可能会很好 - 他们不会感谢你不断抓取他们的网站 - aftership.com/docs/api/4
-
谢谢大家检查一下,我确实看过售后但给出了错误但我再看一遍。
标签: javascript jquery html ajax