2012-06-26 68 views
0

我創建了一個期望參數的MVC 4 Web API。當我通過在瀏覽器中放置url直接調用它時,這工作正常。現在我正嘗試通過jquery在aspx頁面上使用數據和完整url(帶參數)來調用此API。我的代碼看起來像使用jquery調用參數化MVC 4 Web API時出錯

$.ajax 
      ({ 
       type: "GET", 
       url: 'http://MySite/Test/api/product/?context=001', 
       dataType: "jsonp", 
       //data:{"context": "001")}, 
       crossDomain : true, 
       async:false, 
       success: function (result) { 
        alert(result); 
       }, 
       error: function (data) { 
        alert(data); 
      } 
      }); 

但總是我作爲[對象對象]在'錯誤'函數中得到響應。 當我展開返回的對象,我發現以下

Object 
abort: function (a){a=a||"abort",p&&p.abort(a),w(0,a);return this} 
always: function(){i.done.apply(i,arguments).fail.apply(i,arguments);return this} 
complete: function(){if(c){var a=c.length;m(arguments),i?k=c.length:e&&e!==!0&&(j=a,n(e[0],e[1]))}return this} 
done: function(){if(c){var a=c.length;m(arguments),i?k=c.length:e&&e!==!0&&(j=a,n(e[0],e[1]))}return this} 
error: function(){if(c){var a=c.length;m(arguments),i?k=c.length:e&&e!==!0&&(j=a,n(e[0],e[1]))}return this} 
fail: function(){if(c){var a=c.length;m(arguments),i?k=c.length:e&&e!==!0&&(j=a,n(e[0],e[1]))}return this} 
getAllResponseHeaders: function(){return s===2?n:null} 
getResponseHeader: function (a){var c;if(s===2){if(!o){o={};while(c=bH.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c} 
isRejected: function(){return!!e} 
isResolved: function(){return!!e} 
overrideMimeType: function (a){s||(d.mimeType=a);return this} 
pipe: function (a,b,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[b,"reject"],progress:[c,"notify"]},function(a,b){var c=b[0],e=b[1],g;f.isFunction(c)?i[a](function(){g=c.apply(this,arguments),g&&f.isFunction(g.promise)?g.promise().then(d.resolve,d.reject,d.notify):d[e+"With"](this===i?d:this,[g])}):i[a](d[e])})}).promise()} 
progress: function(){if(c){var a=c.length;m(arguments),i?k=c.length:e&&e!==!0&&(j=a,n(e[0],e[1]))}return this} 
promise: function (a){if(a==null)a=h;else for(var b in h)a[b]=h[b];return a} 
readyState: 4 
setRequestHeader: function (a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this} 
state: function(){return e} 
status: 200 
statusCode: function (a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this} 
statusText: "success" 
success: function(){if(c){var a=c.length;m(arguments),i?k=c.length:e&&e!==!0&&(j=a,n(e[0],e[1]))}return this} 
then: function (a,b,c){i.done(a).fail(b).progress(c);return this} 
+0

什麼是實際的輸出,當你通過瀏覽器中調用?並且它是否需要任何憑據來調用API? –

+0

在即,我得到json對象,以及在Chrome瀏覽器xml中,這是預期的。在url ...?context = 001是我的參數。 –

+0

嘗試改變'dataType:「json xml」'。 –

回答

0

我遇到了一個類似的文章#2本身,這談調用從jQuery的一個MVC 4的Web API。下面的鏈接相同,

JSONP with ASP.NET Web API

+0

上的'JSONP'和'jsonpCallback'屬性感謝您的回覆。但它不適合我。 –