2015-05-14 94 views
0
var url = 'http://localhost:3000/categories/?callback=?'; 

    $.ajax({ 
     type: 'GET', 
     url: url, 
     jsonpCallback: 'jsonCallback', 
     contentType: "application/json", 
     cache: true, 
     dataType: 'jsonp', 
     success: function(data) { 
      console.log(data); 
     }, 
     error: function(e) { 
      console.log(e); 
     } 
    }); 

和控制檯日誌錯誤:jQuery的AJAX失敗

index.html:25 Object {readyState: 4, getResponseHeader: function, getAllResponseHeaders: function, setRequestHeader: function, overrideMimeType: function…}abort: function (a){var b=a||u;return c&&c.abort(b),x(0,b),this}always: function(){return e.done(arguments).fail(arguments),this}complete: function(){if(h){var c=h.length;!function g(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&g(c)})}(arguments),d?f=h.length:b&&(e=c,j(b))}return this}done: function(){if(h){var c=h.length;!function g(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&g(c)})}(arguments),d?f=h.length:b&&(e=c,j(b))}return this}error: function(){if(h){var c=h.length;!function g(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&g(c)})}(arguments),d?f=h.length:b&&(e=c,j(b))}return this}fail: function(){if(h){var c=h.length;!function g(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&g(c)})}(arguments),d?f=h.length:b&&(e=c,j(b))}return this}getAllResponseHeaders: function(){return 2===t?e:null}getResponseHeader: function (a){var b;if(2===t){if(!f){f={};while(b=gb.exec(e))f[b[1].toLowerCase()]=b[2]}b=f[a.toLowerCase()]}return null==b?null:b}overrideMimeType: function (a){return t||(k.mimeType=a),this}pipe: function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):cf[0]+"With"})}),a=null}).promise()}progress: function(){if(h){var c=h.length;!function g(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&g(c)})}(arguments),d?f=h.length:b&&(e=c,j(b))}return this}promise: function (a){return null!=a?n.extend(a,d):d}readyState: 4setRequestHeader: function (a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this}state: function(){return c}status: 200statusCode: function (a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this}statusText: "load"success: function(){if(h){var c=h.length;!function g(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&g(c)})}(arguments),d?f=h.length:b&&(e=c,j(b))}return this}then: function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):cf[0]+"With"})}),a=null}).promise()}proto: Object

任何想法我做錯了嗎?

+1

你看上去登錄XHR對象,不錯誤 ? – adeneo

+0

你不需要自己添加回調參數到URL,你當然不希望URL本身有2'?':'var url ='http:// localhost:3000/categories /';' –

+0

我更改了我的快遞服務器,將jsonp'res.json()'中的數據發送到'res.jsonp()',它現在可以工作。問題不在於ajax調用本身。 – Mika

回答

0

試試這個。希望問題可能與contentType: "application/json", dataType: 'jsonp'

var url = 'http://localhost:3000/categories/?callback=?'; 

    $.ajax({ 
     type: 'GET', 
     url: url, 
     success: function(data) { 
      console.log(data); 
     }, 
     error: function(e) { 
      console.log(e); 
     } 
    }); 
0

可以嘗試改變這種行..

cache: false, // we do not need any browser posibble caches here.. 
success: callback, 
// remove this line: jsonpCallback: 'jsonCallback', 

和溝?回調的URL