栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Access

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Access

您有两种前进的方式:

JSONP


如果此API支持

JSONP
,则解决此问题的最简单方法是将其添加
&callback
到URL的末尾。您也可以尝试
&callback=
。如果这不起作用,则表示API不支持
JSONP
,因此您必须尝试其他解决方案。

代理脚本


您可以在与网站相同的域上创建代理脚本,以避免跨域问题。这仅适用于HTTP URL,不适用于HTTPS URL,但是如果需要的话,对其进行修改应该不会太困难。

<?php// File Name: proxy.phpif (!isset($_GET['url'])) {    die(); // Don't do anything if we don't have a URL to work with}$url = urldepre($_GET['url']);$url = 'http://' . str_replace('http://', '', $url); // Avoid accessing the file systemecho file_get_contents($url); // You should probably use cURL. The concept is the same though

然后,您只需使用jQuery调用此脚本即可。确保

urlenpre
输入URL。

$.ajax({    url      : 'proxy.php?url=http%3A%2F%2Fapi.master18.tiket.com%2Fsearch%2Fautocomplete%2Fhotel%3Fq%3Dmah%26token%3D90d2fad44172390b11527557e6250e50%26secretkey%3D83e2f0484edbd2ad6fc9888c1e30ea44%26output%3Djson',    type     : 'GET',    dataType : 'json'}).done(function(data) {    console.log(data.results.result[1].category); // Do whatever you want here});

为什么


由于XMLHttpRequest具有相同的原始策略,因此会出现此错误,基本上可以归结为将ajax请求限制为具有不同端口,域或协议的URL。设置此限制是为了防止跨站点脚本(XSS)攻击。

更多信息

我们的解决方案通过不同方式解决了这些问题。

JSONP
使用将脚本标签指向JSON(包装在javascript函数中)以接收JSON的功能。JSONP页面被解释为javascript,并被执行。JSON将传递到您指定的函数。

代理脚本通过欺骗浏览器来工作,因为您实际上请求的页面与页面的来源相同。实际的跨域请求发生在服务器端。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/381355.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号