资讯专栏INFORMATION COLUMN

使用node.js请求接口及get请求跨域问题

EscapedDog / 1754人阅读

在自己的服务器上传了一个json文件:http://47.75.195.199/NodeApi/...
项目地址
https://github.com/chunsenye/...

test.json

{
    "a": "hello!",
    "b": "this",
    "c": "is",
    "d": "my",
    "e": "first",
    "f": "api"
 }

现在通过两种方式请求它

1. 在node环境中使用js代码进行http请求 具体代码如下

getJson.js

//需要先按照request模块
//npm i request
var request = require("request");
// request(url,callback);
request("http://47.75.195.199/NodeApi/test.json", function (error, response, data) {
  //如果请求成功则打印数据 否则显示错误信息
  if (!error && response.statusCode == 200) {
    console.log(data);
  }else {
    console.log(error);
    console.log(response.statusCode);
  }
});

在改文件目录下 运行 node getJson.js
请求成功 结果如下

2.在html文件中的js代码中进行http请求(ajax 和 jsonp)

getJson.html

第一次尝试 直接使用ajax 来 GET 请求数据




    
    
    
    获取json数据
    



    

得到的结果是这样的

这就是大名鼎鼎的跨域问题,我们不能直接请求这个服务器上的数据 但是可以通过jsonp 实现原理需要知道
第二次尝试 加多了一行代码 dataType: "jsonp"

得到结果是 Uncaught SyntaxError: Unexpected token :

这里是接口的数据不对,所以没办法获取,如果要使用jsonp获取 test.json应该这样写 加多一个中括号
第三次尝试
test.json

[{
    "a": "hello!",
    "b": "this",
    "c": "is",
    "d": "my",
    "e": "first",
    "f": "api"
 }]

请求成功了,数据格式也对了,但是就是一直走error那里,并不会执行成功的回调

第四次尝试

还是不行 说是还要改服务器,到这里就很难受了,我刚买的阿里云服务器 还是centos系统的 目前还不知道如何解决 所以只能换一个链接 用别人的数据

更换链接:http://apis.juhe.cn/goodbook/...
这是我在聚合申请的一个接口 请求次数有限 每天只有一百次


最终请求成功,Chrome浏览器会拦截这样的代码 需要允许运行。
后面会处理服务器的问题,或许有人看到 也可以指点一下我 。我的GitHub https://github.com/chunsenye/... 记得给个★哈

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/98140.html

相关文章

  • 关于跨域

    摘要:服务端接收到请求后,通过该参数获得回调函数名,并将数据放在参数中将其返回收到结果后因为是标签,所以浏览器会当做是脚本进行运行,从而达到跨域获取数据的目的。 在使用Vue搭建的一个后端管理系统中,我使用axios请求本地的Node环境下的接口,但是请求失败,然后我错误信息是:showImg(https://segmentfault.com/img/remote/1460000018521...

    AlexTuan 评论0 收藏0
  • 大话javascript 5期:跨域

    摘要:同源策略所谓同源是指协议,域名,端口均相同。同源策略是浏览器的一个安全功能,不同源的客户端脚本在没有明确授权的情况下,不能读写对方资源。需注意的是由于同源策略的限制,所读取的为跨域请求接口所在域的,而非当前页。 一、什么是跨域 1.URL解析 URL (Uniform Resource Locator )统一资源定位符(URL)是用于完整地描述Internet上网页和其他资源的地址的...

    jzzlee 评论0 收藏0
  • 20K前端大佬面试(关于如何回答ajax跨域问题)

    摘要:在接触前端开发起,跨域这个词就一直以很高的频率在我们学习工作中重复出现,最近在工作中遇到了跨域的相关问题,这里我把它总结记录一下。 在接触前端开发起,跨域这个词就一直以很高的频率在我们学习工作中重复出现,最近在工作中遇到了跨域的相关问题,这里我把它总结记录一下。关于跨域,有N种类型,现在我只专注于ajax请求跨域(ajax跨域只是属于浏览器同源策略中的一部分,其它的这里不做介绍),内容...

    Yangyang 评论0 收藏0
  • ajax跨域,这应该是最全的解决方案了

    摘要:关于,强烈推荐阅读跨域资源共享详解阮一峰另外,这里也整理了一个实现原理图简化版如何判断是否是简单请求浏览器将请求分成两类简单请求和非简单请求。 前言 从刚接触前端开发起,跨域这个词就一直以很高的频率在身边重复出现,一直到现在,已经调试过N个跨域相关的问题了,16年时也整理过一篇相关文章,但是感觉还是差了点什么,于是现在重新梳理了一下。 个人见识有限,如有差错,请多多见谅,欢迎提出iss...

    ytwman 评论0 收藏0

发表评论

0条评论

EscapedDog

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<