使用jQuery / AJAX与JSONP时没有响应

时间:2013-03-19 11:38:22

标签: javascript jquery ajax jsonp

我正在尝试使用jQuery / AJAX创建跨域请求。我有以下代码;

$.ajax({
   url: "http://www.cjihrig.com/development/jsonp/jsonp.php?callback=jsonpCallback&message=Hello",
   crossDomain:true
})
.done(function( msg ) {
  alert( "Done : " + msg );
})
.fail(function( msg) {
  alert( "Fail : " + msg);
})
.always(function( msg ) {
  alert( "Always : " + msg );
});

URL http://www.cjihrig.com/development/jsonp/jsonp.php?callback=jsonpCallback&message=Hello在直接调用时返回JSON对象,并且在以传统方式使用JSONP时工作正常(即通过动态脚本标记注入)

但是为什么在与jQuery / AJAX一起使用时会出现错误?

2 个答案:

答案 0 :(得分:1)

尝试此代码,因为错误未设置为dataType,并且不期望jsonp默认为
dataType:(默认值:Intelligent Guess(xml,json,script或html))
输入:字符串

  $.ajax({
   url: "http://www.cjihrig.com/development/jsonp/jsonp.php?callback=jsonpCallback&message=Hello",
   dataType: 'jsonp',
   crossDomain:true,
    jsonp: false,
    success: jsonpCallback,
})
.done(function( msg ) {
  alert( "Done : " + msg );
})
.fail(function( msg) {
  alert( "Fail : " + msg);
})
.always(function( msg ) {
  alert( "Always : " + msg );
});

 function jsonpCallback(data){
        alert("jsonpCallback");
    }

DEMO

答案 1 :(得分:0)

我会使用$ .ajax选项:

dataType: "jsonp"

这会自动将回调选项添加到网址。 http://api.jquery.com/jQuery.ajax/