Ajax跨域问题,请求第三方接口数据,求助!急急!

Ajax跨域问题,请求第三方接口数据,求助!急急!

顾挽 发布于 2021-11-29 字数 796 浏览 732 回复 22

我在开发微店,遇到的问题是他们提供的接口如下: 

http://api.vdian.com/api?param={"page_num":1,"order_type":"",
"add_start":"2014-09-12%2016:36:08","add_end":"2014-11-12%2016:36:08"}
&public={"method":"vdian.order.list.get","access_token":"7cae3290c7c8a7cdc072c501d3e11637",
"version":"1.1","format":"json"}

很明显这个是跨域的,所以我用了  jquery的JSONP但是,后台返回的是 json数据,所以报错如下:

Uncaught SyntaxError: Unexpected token : 

这个找不到是哪里的错,看到是请求后面多了一个 :号,但是http header中是正确的!

然后找了一些方法,代理服务器,但是我只会nodejs  ,但是nodejs的代理,用node-http-proxy 怎么发送请求到这个接口呢?

有人做个这个吗?请帮我提供一个解决方法吧!谢谢。

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(22

屌丝范 2021-12-01 22 楼

恩,我解决了,我用的nodeJs,我在服务器上面再求情的。谢谢哈

别低头,皇冠会掉 2021-12-01 21 楼

貌似时间有点晚了,不知道楼主是不是解决了该问题

<?php

$url = 'http://api.vdian.com/api?param={"page_num":1,"order_type":"",
"add_start":"2014-09-12%2016:36:08","add_end":"2014-11-12%2016:36:08"}
&public={"method":"vdian.order.list.get","access_token":"7cae3290c7c8a7cdc072c501d3e11637",
"version":"1.1","format":"json"}';

echo file_get_contents($url);

清晨说ぺ晚安 2021-12-01 20 楼

用你的服务器去请求这个地址,获取数据后直接输出。。如果需要输出jsonp也可以 加上callback name 之后输出

用PHP一个文件就搞定

瀞厅☆埖开 2021-12-01 19 楼

服务端不支持你没辙,或者你自己做个服务代理

情绪失控 2021-12-01 18 楼

有实例吗?

冷弦 2021-12-01 17 楼

嗯,所以这个不行

百思不得你姐 2021-12-01 16 楼

jsonp请求相应的数据应该是脚本形式的,如

callback1({xxx:'yyy'})

彩扇题诗 2021-12-01 15 楼

jsonp需要服务端支持

凡尘雨 2021-12-01 14 楼

我用的,jquery的ajax,发送的请求,这个错,看不到具体的出错点,数据是回来了,就是不能继续走下去,像这个提供的接口该怎么去请求呢?微店开放平台提供的…它又没具体说明!你可以帮我试试不呢?注册下微店,测试下接口。

居里长安 2021-12-01 13 楼

回复
你回来的数据是什么? 不是出错信息?只要服务器运行正常, 你发给它不管什么信息它都有数据返回, 只不过是不是你要的就不一定了.

2021-12-01 12 楼

点击此处输入评论

无人问我粥可暖 2021-12-01 11 楼

回来的是json格式数据,数据是正确的,就是本地的代码走不了!确定是后台不支持jsonp,只能做代理了,你会nodejs的代理吗?

一个人的旅程 2021-12-01 10 楼

回复
这是说明你本地的node.js出问题了?不好意思, 不懂node.js

心欲静而疯不止 2021-12-01 9 楼

楼主的话看不太懂...

http header中你看不到这个冒号 是request最后发出去的header吗

这不可能吧.你如果使用http URL请求数据应该符合URL的要求不能有:的

飘然心甜 2021-12-01 8 楼

这个是通过修改服务端在允许跨域,但如果服务端不允许修改呢?

坐在坟头思考人生 2021-12-01 7 楼

我没有服务器权限的…有就好办了

夜血缘 2021-12-01 6 楼
// 处理来自客户端js的跨域请求
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "X-Requested-With");
            res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
res.header("X-Powered-By",' 3.2.1')
res.header("Content-Type", "application/json;charset=utf-8");
//需要返回的的json
res.send({"newName":[{"Title [id=1, title=主页]":[]}]});

坏尐絯 2021-12-01 5 楼

我没法拼接,后台返回的就是一个json数据

墨洒年华 2021-12-01 4 楼

返回的数据不是jsonp格式阿 要拼接一个callback

离去的眼神 2021-12-01 3 楼

不是啊,就是这样的!数据正常请求回来了的,但是就是报错了,后面的 success执行不了

乞讨 2021-12-01 2 楼

回复
你已经报错了, 这根本就不能叫正常请求回来了.

已下线请稍等 2021-12-01 1 楼

这个报错是语法错误啊。你这个请求的URL有点奇怪,直接把JSON放在URL里??

有没有可能URL是这样的:http:XXXXXX/api?page_num=1&order_type=""&add_start=""

后面那一段应该是放在header里的吧。