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

乐派电影 发布于 2015/03/13 11:27
阅读 4K+
收藏 1

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

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 怎么发送请求到这个接口呢?

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


加载中
0
YueZheng
YueZheng

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

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

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

甘薯
甘薯
回复 @leiroc : 你已经报错了, 这根本就不能叫正常请求回来了.
乐派电影
乐派电影
不是啊,就是这样的!数据正常请求回来了的,但是就是报错了,后面的 success执行不了
0
李丙城
李丙城
返回的数据不是jsonp格式阿 要拼接一个callback
乐派电影
乐派电影
我没法拼接,后台返回的就是一个json数据
0
kingbest
kingbest
// 处理来自客户端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=主页]":[]}]});



乐派电影
乐派电影
我没有服务器权限的…有就好办了
Jack_Q
Jack_Q
这个是通过修改服务端在允许跨域,但如果服务端不允许修改呢?
0
甘薯
甘薯

楼主的话看不太懂...

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

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

甘薯
甘薯
回复 @leiroc : 这是说明你本地的node.js出问题了?不好意思, 不懂node.js
乐派电影
乐派电影
回来的是json格式数据,数据是正确的,就是本地的代码走不了!确定是后台不支持jsonp,只能做代理了,你会nodejs的代理吗?
乐派电影
乐派电影
点击此处输入评论
甘薯
甘薯
回复 @leiroc : 你回来的数据是什么? 不是出错信息?只要服务器运行正常, 你发给它不管什么信息它都有数据返回, 只不过是不是你要的就不一定了.
乐派电影
乐派电影
我用的,jquery的ajax,发送的请求,这个错,看不到具体的出错点,数据是回来了,就是不能继续走下去,像这个提供的接口该怎么去请求呢?微店开放平台提供的…它又没具体说明!你可以帮我试试不呢?注册下微店,测试下接口。
0
d
dark89757
jsonp需要服务端支持
0
battyman
battyman

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

callback1({xxx:'yyy'})

乐派电影
乐派电影
嗯,所以这个不行
0
碳素云信息技术
乐派电影
乐派电影
有实例吗?
0
亭舸翁
亭舸翁
服务端不支持你没辙,或者你自己做个服务代理
0
小k宝贝
小k宝贝

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

用PHP一个文件就搞定

0
小k宝贝
小k宝贝

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

<?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);

乐派电影
乐派电影
恩,我解决了,我用的nodeJs,我在服务器上面再求情的。谢谢哈
返回顶部
顶部