JQuery ajax json怎样获取外网url返回的数据

JQuery ajax json怎样获取外网url返回的数据,第1张

Jquery ajax在请求不同域名(外网)的URL时,由于浏览器安全限制(同源策略)是不允许请求的,将会发生错误。如果想要在这样的场景下获取返回的数据,可以参考下面的方法:

1、搭建服务器做代理捉取跨域请求返回的数据,本地应用页面的ajax请求建立的代理服务器就能间接的实现这样的需求。但是此种做法较为复杂,不建议使用;

2、使用jsonp跨域访问,这种方法是较为普遍的解决方案,其实现原理是:HTML的<script>标签是可以突破同源策略从其他来源获取数据,所以可以通过<script>标签引入jsonp文件,然后通过一系列JS *** 作获取数据。

具体实现步骤如下:

利用本地页面js创建一个<script>元素,地址指向第三方的API网址,形如:

<script src=";

提供一个回调函数来接收数据(函数名可约定,或通过地址参数传递), 第三方产生的响应为json数据的包装(故称之为jsonp,即json padding),形如:  

callback({"name":"hax","gender":"Male"})

这样浏览器会调用callback函数,并传递解析后json对象作为参数。本地脚本可在callback函数里处理所传入的数据。

示例代码:

<script>  

 var url = ";

使用jsonp需要后端代码配合, 后台返回的json外面需要由回调函数包裹。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

function parse_url(url) {

if (urllastIndexOf('') == 0) {

var str = urlsubstring(urllastIndexOf('') + 1, urllength);

var arr = strsplit('&');

var parames = [];

for (var i = 0; i < arrlength; i++) {

parames[arr[i]split('=')[0]] = arr[i]split('=')[1];

}

return parames;

}

}

var type = parse_url(locationsearch);

if (type) {

if (type['lang'] == 'fr') {

documentgetElementById('id')innerHTML = 'good thanks';

documentgetElementById('id1')innerHTML = 'good thanks';

}

}

这段代码要放到 id 为 'id'和'id1' 这2个元素的后面

也就是说,执行这段代码时,要保证页面元素被加载完成了

locationhost 取出localhost

locationhrefsubstring(0, locationhrefindexOf('/', 8))取出:>

给你提供个思路吧:

找到所有的a标签

遍历并获取每个a标签的href属性

将href属性使用正则表达式匹配href的值

匹配含有test字符串的href值就是选中的a标签

谢谢采纳!

以上就是关于JQuery ajax json怎样获取外网url返回的数据全部的内容,包括:JQuery ajax json怎样获取外网url返回的数据、jQuery获取点击的URL里面的参数,就是点击那个URL就获取那个URL里面的参数,不是当前浏览器里面的参数。、用jquery如何截取这样的URL等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9739366.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存