簡體   English   中英

從JS錯誤控制器中的ASP Net MVC調用函數

[英]ASP Net MVC calling function in controller from JS errors

我有一個ASP.Net MVC項目,我試圖在我的PunchesController中調用一個名為jobs的方法。 我在方法上設置了一個調試器,它命中了jobs方法並返回正確的結果。 我甚至從Advanced Rest Client調用了jobs方法,它返回了正確的結果。

但是在jquery方法中我得到“Uncaught TypeError:f.QueryResponseHeaders不是一個函數”,我通過Google /堆棧溢出找不到多少。

我在下面列出了相關代碼: PunchesController中的job方法

高級休息客戶端的信息

更新了JS

json從PunchesController中的Jobs方法返回

[
{
  "Job":{
     "Id":"5932c49d-5f1b-443c-b43c-6107c832b07b",
     "Name":"Featured Actor"
  },
  "Status":0,
  "StartDate":"2015-08-12T00:00:00",
  "EndDate":"0001-01-01T00:00:00",
  "PayRate":20000000.0,
  "Companies":[
     {
        "Id":"cb0e96a4-eaf2-4966-810f-7949581ba3fe",
        "Name":"Test Company"
     }
  ],
  "Id":"21aebb35-ade3-4cb3-83bb-db47824d1509",
}
]

我已經嘗試向GET調用添加一個錯誤處理程序,但它永遠不會命中它。 它始終會向控制台打印“Uncaught TypeError:f.QueryResponseHeaders不是函數”,就是這樣。 有任何想法嗎?

您是否嘗試過添加contentType參數?:

$.ajax({
    url: '/punches/jobs/' + employeeId,
    dataType: 'json',
    type: "GET",
    contentType: "application/json; charset=utf-8", 
    success: function (response) {
        console.log(response);
    }
});

此外,您可以使用$ .getJSON()

$.getJSON(url, params, function (response) {
    console.log(response);
});

作為旁注,從jQuery v1.4開始,參數的序列化已經改變。 如果需要支持先前的param序列化,則可能需要將traditional設置為true 有關文檔的更多信息,請點擊此處
在每次調用時設置屬性,如下所示:

$.ajax({
    ...
    traditional: true,
    ...
});

或者像這樣全局設置它(這將適用於所有進一步的ajax調用):

$.ajaxSetup({
    traditional:true
});

我預感到我的jquery版本從2.1.4降級到1.11.3,現在一切正常。 我不確定導致錯誤的是什么,但它至少是固定的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM