jquery - IE8 版本 8.0.7600 及更低版本中的 JSON 基元无效

标签 jquery ajax asp.net-mvc json internet-explorer-8

在 IE8 版本 8.0.7600 及更低版本中发出 ajax 请求时,我收到错误或“无效的 JSON Promitive:未定义”,但无法在 8.0.7601 或更高版本中复制它。有谁知道原因或如何解决它?

$.ajax({
    url: defaults.url + (defaults.url.indexOf('?') > 0 ? '&' : '?') + 'r=' + Math.random(),
    type: defaults.method,
    contentType: 'application/json',
    dataType: defaults.dataType,
    data: ko.toJSON(defaults.data),
    beforeSend: function (xhr, settings) {
        xhr.setRequestHeader("URL_REFERRER", config.urlReferrer);
        xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
    },
)}

Controller

public virtual JsonResult CompleteOrder(string id)
{
    _entitlementsService.CompleteOrder(AuthenticateManager.CurrentUserProfile.UserModel.UserId, id);
    return Json(new SuccessResponse("Order completed"));
}

请求

Request URL:http://localhost:16253/DashboardSetup/Entitlements/CompleteOrder/c8e053d9-a458-11e1-8dd0-001cc4565d26?r=0.8639180345926434
Request Method:POST
Status Code:200 OK
Request Headersview source
Accept:*/*
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Connection:keep-alive
Content-Length:0
Content-Type:application/json
Cookie:MYNGCONNECT=56053B332B26A0FD9D0A31C5FC83868281D876DB1F365034306F6CB3A64C5B2F7
Host:localhost:16253
Origin:http://localhost:16253
Referer:http://localhost:16253/DashboardSetup/Entitlements/Entitlement?SearchResults=True&id=c8e053d9-a458-11e1-8dd0-001cc4565d26
URL_REFERRER:http://localhost:16253/DashboardSetup/Entitlements
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11
X-Requested-With:XMLHttpRequest
Query String Parametersview URL encoded
r:0.8639180345926434

最佳答案

将您的 contentType 更改为“text/json”或“text/plain”。旧版 IE 需要 header 中不同的内容类型配置。

关于jquery - IE8 版本 8.0.7600 及更低版本中的 JSON 基元无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11476128/

相关文章:

javascript - 应该发布到特定的 URL;相反,我看到 GET 到 "/"

javascript - 单击标题外侧的跨度时如何打开 Accordion

javascript - ExtJS 还是 SmartClient?

asp.net-mvc - ServiceStack CustomAuthenticationMvc 管理员密码?

asp.net-mvc - 在 ASP.NET MVC3 中的 Post Action 中获取属性值(List<long>)

单击任何其他元素时,Javascript 更改 css

php - JWPlayer页面刷新错误: Could not load plugins:File not found

javascript - 表单验证不适用于 ProgressButton js

javascript - PHP 和 jQuery 与 AJAX 上传不工作

c# - 尝试删除在 .NET MVC 中插入时早于 X 天的文件