我有下面的代码,在开发机器上工作正常,但从远程浏览器调用时却不行。
$.ajax({
type: 'POST',
url: '@Url.Action("Action", "Controller")',
data: { id: id },
dataType: 'json',
async: true,
success: function (data) {
},
error: function (jqXHR, status, err) {
var result = jqXHR.responseJSON;
}
});
字符串
responseJSON对象在从本地主机调用时工作,但在从远程计算机调用时不工作,它返回为undefined...有人能帮助我吗?提前感谢!
x1c 0d1x的数据
2条答案
按热度按时间bpsygsoo1#
我也遇到过类似的问题。当我在本地机器上使用localhost进行测试时,ResponseJSON被填充。当我上传我的项目到测试服务器并进行测试时,我的responseJSON是未定义的,responseTEXT只是给出了我发送的statusdescription:
(this是一个JSONResult,但我已经将其作为JSONResult完成)
字符串
我还专门为CumberResult尝试了以下操作:
型
这给了我一堆错误。
我用JsonResult尝试了下面的代码,它在本地工作(但我在JSON中有一个语法错误),但在测试服务器上不工作。
型
这是最近的一个测试(上面),当我使用AJAX请求向MVC控制器提交表单模型时,我读到这是因为它是跨域的,但这没有意义。
我创建了一个web API控制器,并将方法信息放在那里。这是因为我想使用HttpReponseMessage,我认为这是一个Web API类型。在获得模型和JSON以及所有内容后,我测试了一下,猜猜怎么着?
当我在WebAPI中使用HttpResponseMessage作为返回类型时,返回如下:
型
responseJSON和responseText都正确填充。
我不知道为什么它不工作,否则,如果有人有一个回应,请告诉我们。
对我来说,这是一个工作,因为我觉得它应该已经工作的第一种方式。
更新:使用MVC控制器的原始代码-并添加
型
使responseJSON出现。
q7solyqu2#
正如nebulous所建议的那样,
Response.TrySkipIisCustomErrors = true;
似乎是正确的方法。不幸的是,大多数时候
IIS
会忽略这个属性,并跳过它(也许这就是为什么开发人员称之为Try
.)。但是,我修复了在
Web.config
上添加此功能的问题:字符串
它更干净,不会“弄脏”代码部分。
希望对你有帮助。