标签: jsonp

JSONP - Access-Control-Allow-Origin和MIME类型错误

我试图创建一个jsonp请求的服务器和客户端,我似乎无法使其工作.我查看了很多指南,博客文章等,但几乎每个人都只显示客户端.

这是我的客户端代码

$.ajax({
    dataType: 'application/json',
    data: params,
    jsonp: 'jsonpCallback',
    url: settings.domain + '/httpext.dll?json_cc',
    success: function (data) {
        //determine the return status
    },
    error: function (response, status, error) {
        //error handling
    }
}); //end ajax
Run Code Online (Sandbox Code Playgroud)

现在,服务器正在返回这样的硬编码值

jsonpCallback({"username":"meltingice","posts"1234});
Run Code Online (Sandbox Code Playgroud)

我的问题是我无法得到请求和响应一起工作.目前,响应是返回application/json,所以如果我改变了我的请求,那么期望jsonp它的错误

资源解释为脚本,但使用MIME类型application/json进行传输.未捕获的ReferenceError:未定义jsonpCallback

首先,如您所见,我已经定义了jsonpCallback.

现在,如果我将dataType更改为application/json,那么我会收到此错误

XMLHttpRequest cannot load http://myserver/httpext.dll?json_cc&sid=adsfhasjdkfhajksdghjk%3Basdhg&action=SALE&ccCard=&ccNum=&ccExMM=0&ccExYYYY=0&ccCVV2=&holdersName=&totalDue=0&dueDate=11%2F19%2F2010. Origin http://localhost:59905 is not allowed by Access-Control-Allow-Origin.
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,它并没有放入callback=?网址.这令人沮丧.

如何设置服务器端以便我可以使用jsonp调用它?响应类型需要什么?如何格式化返回的数据,以便我的客户端代码可以撤回数据?

ajax jquery jsonp cross-domain

4
推荐指数
1
解决办法
8546
查看次数

如何使用JsonpRequestBuilder获取JSON字符串

我正在使用GWT的JsonpRequestBuilder发出一个跨站点REST请求,其响应是一个JSON对象.

requestObject方法的回调参数是JavaScriptObject.但我不想实现JavaScriptObject,而是直接解析JSON响应.无论如何我可以直接从JavaScriptObject或JsonpRequestBuilder的任何方法获取JSON字符串吗?

gwt jsonp

4
推荐指数
1
解决办法
2421
查看次数

使用Javascript访问带有XHR的CouchDB

我最近一直在研究CouchDB,我目前遇到的问题是我不知道如何使用Javascript访问它.

据我所知,目前我的选择是:

  • XHR:不起作用.Same-Origin-Policy阻碍了.我似乎也无法使CouchDB发送额外的Access-Control-Allow-Origin标头.
  • JSONP:限制对GET方法的请求.

那么我该如何访问数据库呢?

javascript json jsonp couchdb xmlhttprequest

4
推荐指数
1
解决办法
577
查看次数

GWT JSONP与帖子没有得到

我在表单中有一个Web服务 `http://....../methodName

它返回一个jsonp结果,例如:

methodName(["a":"a", "b":"b"]) 
Run Code Online (Sandbox Code Playgroud)

GWT提供了JsonpRequestBuilder类来解析jsonp.

  JsonpRequestBuilder rb = new JsonpRequestBuilder();

  rb.setCallbackParam("callback");

  rb.requestObject("http://...../methodName", new AsyncCallback<TestJS>(){
  ...
});
Run Code Online (Sandbox Code Playgroud)

这个结构向url发出请求: "http://...../methodName/?callback=__gwt_jsonp_P0.onSuccess".

我的Web服务返回一个回调,其中的methodName不是__gwt_json .....所以gwt无法从该响应创建一个JavaScriptObject.JsonpRequestBuilder也可以使用GET而不是POST.

如何实现这些目的:使用POST发送请求并修改GWT的默认回调名称.

gwt post jsonp

4
推荐指数
1
解决办法
1857
查看次数

在Jersey Rest中使用@Consume和GET请求

我正在尝试将GET请求中的值绑定到POJO.

这些值是HTTP GET请求中的参数.我使用JSONP传递参数,但是它看起来像JSONP推动JSON对象上到请求行所以它不是真的正在被发送,但是,URL,而不只是名称值对的JSON对象.

是否可以将我的GET请求中的值映射到POJO?当我尝试绑定时,Jersey会给出以下异常

HTTP GET方法public void handleJSONP(MyPojo)不应使用任何实体.

绑定代码在请求体中查找,但它不存在,因为它是GET请求.是否有任何其他方法来绑定请求中的值,而无需为每个方法手动包含@QueryParam条目?

谢谢

jsonp jersey jackson

4
推荐指数
1
解决办法
2万
查看次数

Java的Jersey,RESTful API和JSONP

这肯定已经得到了回答,但是今天我的谷歌权力已经关闭了,而且我一直在努力解决这个问题.我们正在从旧的PHP基础迁移到基于Jersey的JVM堆栈,这将最终提供可以从许多应用程序中使用的基于JSON的RESTful API.到目前为止,情况非常好,我们喜欢简单的POJO到JSON转换.但是,我们正在处理跨域JSON请求中的困难.我们基本上让所有响应返回JSON(使用@Produces("application/json")并将com.sun.jersey.api.json.POJOMappingFeature设置为true)但是对于JSONP支持,我们需要更改我们的方法以返回JSONWithPadding的实例.这当然还要求我们为每个方法添加@QueryParam("callback")参数,这将基本上复制我们的工作,导致需要两个方法来响应相同的数据,具体取决于是否存在回调参数在请求中.显然,这不是我们想要的.

所以我们基本上尝试了几种不同的选择.对泽西岛来说比较新,我相信这个问题已经解决了.我从几个地方读到我可以写一个请求过滤器,或者我可以扩展JSON Provider.我理想的解决方案是对我们的数据或逻辑层没有影响,而是有一些代码说"如果有回调参数,用回调包围JSON,否则只返回JSON".在这里找到了一个解决方案:http: //jersey.576304.n2.nabble.com/JsonP-without-using-JSONWithPadding-td7015082.html

但是,该解决方案扩展了Jackson JSON对象,而不是默认的JSON提供程序.

什么是最佳做法?如果我在正确的轨道上,我可以扩展的默认JSON过滤器的类是什么?是否需要其他配置?我完全偏离了轨道吗?

java json jsonp jersey

4
推荐指数
1
解决办法
3269
查看次数

JSONP格式是否必须完美?见例子

我正在使用JSONP尝试从WOT API获取一些结果.请参阅下面的代码:

  // Prepare the URL
  var url='http://api.mywot.com/0.4/public_link_json?hosts=amazon.co.uk/&callback=cbfunc';

  // Lookup
  $.getJSON(url, function(data){
    alert('success');
  });
Run Code Online (Sandbox Code Playgroud)

由于某些原因,这似乎失败了(因为我在浏览器中没有发出警报).经过一些研究后,似乎返回的JSONP在回调函数的末尾有一个空格(在最后一个花括号和右括号之间):

cbfunc({ "amazon.co.uk": { "target": "amazon.co.uk", "0": [ 95, 88 ], "1": [ 95, 87 ], "2": [ 95, 87 ], "4": [ 95, 87 ] } } )
Run Code Online (Sandbox Code Playgroud)

在使用在线JSON格式化程序(http://jsonformatter.curiousconcept.com/)后,看起来这个单独的空间正在抛出整个$ .getJSON()函数,因为它无法处理空间?

JSONP格式是否真的具体?我以为Javascript忽略了空格?我是否正确诊断了这个?有什么办法可以处理JSONP并删除空间吗?

在此先感谢,我正在使用jQUery BTW.

javascript jquery jsonp

4
推荐指数
1
解决办法
124
查看次数

如何使用dataType:'jsonp'但仍然在Accept头中有application/json?

我想访问另一个域上的REST服务.如果,在JQuery中,我指定:

dataType: 'json'
Run Code Online (Sandbox Code Playgroud)

正如预期的那样,它失败了,因为对于跨域调用,必须使用JSONP.

当我将其更改为:

dataType: 'jsonp'
Run Code Online (Sandbox Code Playgroud)

预计到工作,但因为服务器期望失败application/jsonapplication/xmltext/html等,但不是*/*由JSONP请求一起发送.

有没有办法迫使JQuery的投入application/jsonAccept请求头,而做一个JSON请求?

jquery json jsonp http

4
推荐指数
1
解决办法
7072
查看次数

Instagram的最大请求数是多少?

我想知道你可以返回标记的图像数量是否有限制?

这是我的代码:

<script type="text/javascript">
$(function() {
$.ajax({
    type:'GET',
    dataType:'jsonp',
    cache: false,
    url:'https://api.instagram.com/v1/tags/[TAG NAME]/media/recent?client_id=[CLIENT ID]',
    success: function(data) {
        for (var i = 0; i < 50; i++) {
        $(".pics").append("<li><a target='_blank' href='" + data.data[i].link +
        "' class='upshot-instagram' rel='instagram-group'><img src='" + data.data[i].images.thumbnail.url +"' ></img></a></li>");
        }
    }
});
});
</script>
Run Code Online (Sandbox Code Playgroud)

我有50回来,但我只有20张图片回到我身边.我知道我们有超过250个被标记.

api jquery json jsonp instagram

4
推荐指数
1
解决办法
2万
查看次数

使用jQuery的themoviedb JSON API

我正在尝试做一些看似简单的事情.获取文本字段的输入,并通过API在themoviedb.org数据库中搜索它.

我正在使用jQuery和支持JSONP的themoviedb.org APIv3.但我得到的只是这个回应:

{"status_code":6,"status_message":"Invalid id - The pre-requisite id is invalid or not found"}

这并没有真正告诉我很多.ID是什么?

我知道的事情:

  • 我有正确的API密钥
  • 搜索按钮正在提交并获取输入值

这是一个jsfiddle,这是关于搜索电影的API文档.另外,请查看 API 版本的文档.我认为这与查询参数有关.

真的,我不知道我在用JSON做什么,所以我希望这将是一个有助于我理解它的代表性例子.

javascript api jquery json jsonp

4
推荐指数
2
解决办法
2万
查看次数

标签 统计

jsonp ×10

jquery ×5

json ×5

javascript ×3

api ×2

gwt ×2

jersey ×2

ajax ×1

couchdb ×1

cross-domain ×1

http ×1

instagram ×1

jackson ×1

java ×1

post ×1

xmlhttprequest ×1