我创建了一个jquery ajax调用,它在Chrome,firefox和IE中运行良好.
在Safari中,它在响应中给出了500个内部服务器错误.我虽然可能是由于Server的异常.但是当我尝试调试时,我发现它根本没有打到服务器上.
其中最奇怪的是,ajax-call适用于每个备用呼叫.Call-1失败,然后调用2成功.

我附上了请求和响应的屏幕截图(成功和错误).请帮我解决这个问题.
谢谢你,Raghav
var coId = globalObject.GetCompanyIdFromUrl();
if ($("#headerCompanyMenu").length > 0 && coId != "") {
var strData = "{\"coId\":\"" + coId + "\"}";
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
cache: false,
url: globalObject.rootPath + "search/webmethod.aspx/GetCoHeaderData",
data: strData,
async: true,
success: function (d) {
var coHeaderData = JSON.parse(d);
$("#lblCoNm").html(coHeaderData.lblCoNm);
$("#lbl_prim_im").html(coHeaderData.lbl_prim_im);
$("#lbl_prim_md").html(coHeaderData.lbl_prim_md);
$("#lbl_prd_own").html(coHeaderData.lbl_prd_own);
$("#lbl_geo_own").html(coHeaderData.lbl_geo_own);
$("#lbl_org_inv").html(coHeaderData.lbl_org_inv);
$("#lbl_out_inv").html(coHeaderData.lbl_out_inv);
$("#lbl_cur_val").html(coHeaderData.lbl_cur_val);
$("#lbl_nbv").html(coHeaderData.lbl_nbv);
$("#lbl_fv").html(coHeaderData.lbl_fv);
$("#lblProc").html(coHeaderData.lblProc);
$("#lblFinGrd").html(coHeaderData.lblFinGrd);
if (coHeaderData.addNewDeal == "true")
$("#lnkAddNewDeal").show();
if (coHeaderData.coDeals.length > 0) {
BindData("coDealsTmpl", coHeaderData.coDeals);
$("#coDeals").show();
}
},
error: function (error) {
//alert("Company search error");
}
});
Run Code Online (Sandbox Code Playgroud)
我正在从Win7运行Safari.实际的Mac's safari可以很好地加载它.ajax调用没有错误.
服务器是Windows 2008,运行iis 7.没有负载均衡服务器.每次ajax调用命中相同的服务器时,使用相同的输入数据并期望相同的输出数据.
我想说,调用失败的原因是在 IIS 下使用 Windows 身份验证时 Safari 中的错误。转到您网站的身份验证设置。右键单击“Windows 身份验证”,选择提供程序并删除“协商”,保留 NTLM 正常工作。我还没有测试过 Kerberos。
此问题仅出现在 Safari 的某些版本中。
| 归档时间: |
|
| 查看次数: |
2986 次 |
| 最近记录: |