我正在使用ajax调用来从托管在某些服务器上的WebService执行POST和GET操作。
由于跨域问题,我正在使用dataType:“jsonp”。我可以在fiddler上看到Web服务发送的数据。我想访问我从服务中获得的数据,我不知道该怎么做。
这是我的ajax电话:
$.ajax({
type: method,
url: "url",
contentType: "application/json; charset=utf-8",
dataType: "jsonp",
jsonp: false,
jsonpcallback:function(data){}, //What am I supposed to write here so that I can get the JSON data from Padded json
success: successHandler,
error: errorHandler
});
这是我从服务中收到的json响应的近似值:
{"Ideas":[
{"Message":null,"IdeaId":1},
{"Message":null,"IdeaId":1}
]
}
任何形式的帮助将不胜感激。我搜索了很多帖子但是无法通过。
提前谢谢。
答案 0 :(得分:1)
通常,没什么。如果您的JSONP服务真的不典型,您只需要指定回调。如果您指定了它,则需要是字符串。
jsonpcallback:function(data){},
//我应该在这里写什么,以便我可以从Padded json获取JSON数据
同样,您不应将jsonp: false
设置为阻止生成回调参数。
您确实需要成功处理程序来处理数据。拥有错误处理程序也是一个好主意。
function successHandler(data) {
console.log(data)
}
function errorHandler(jqXHR, errorType, exception) {
console.log(errorType, exception);
}
$.ajax({
url: "url", // Make this the real URL!
dataType: "jsonp",
success: successHandler,
error: errorHandler
});
然后JSONP处理程序需要实际返回JSONP
服务器返回的Content-Type
标头应为application/javascript
身体应该是:
callback
键的值(
);
e.g。
jqueryCallback123u54yiyioeuioey8({ "foo": "bar" });
答案 1 :(得分:0)
我不是一个优秀的脚本编写者,但我在我的项目中使用了AJAX ..试试这个,它对我有用。
$.ajax({
type: method,
url: "url",
dataType: "jsonp",
success: function(data){
console.log(data);
}
});
答案 2 :(得分:0)
您需要使用控制台。例如。如果您使用firebug
或firefox
,则chrome's development console
。
你应该在代码中看到错误。
ajax()
jquery中的函数需要success: function(data){ // do something with the data }
回调。
console.log(//some data)
用于在脚本中的不同位置记录各种数据。
所以
$.ajax({
type: method,
url: "url",
dataType: "jsonp",
success: function(data){
console.log(data);
}
});
这不是一个坏主意。
答案 3 :(得分:0)
我得到了这个并以这种方式运行:
<script type="text/javascript">
var jsonpCallback;
function checkDocId() {
// AJAX request
$.ajaxSetup({ cache: false });
jsonpCallback = function(data) {
$("#result").html(data.html);
};
$.ajax({
type: "GET",
url: "/secudok/ws/rest/checkdocid/jsonp/" + encodeURIComponent($("#docId").val()),
dataType: "jsonp",
jsonpCallback: "jsonpCallback",
crossDomain: true
});
}
</script>
服务器返回包含在回调函数中的数据:function({JSON})。
jsonpCallback({"html":"<table>data</table>\n"})
在我的示例中,我们使用HTML,但也可以是JSON
yourCallbackName({"a":"1"; "b":"2"})