访问部署的网站时为什么JSON未定义?

时间:2013-04-17 08:17:24

标签: javascript asp.net-mvc json razor deployment

在MVC4网站上工作(目前开发仍处于早期阶段),我通过IIS Express进行调试(这里没什么特别的,我从Internet Application模板开始,然后只需F5。

我有这条javascript:

function packData(F) {
     F.data.value = Base64.encode(
         JSON.stringify({
             'myField': 'myData'
         })
     );
     F.submit();
}

从局部视图调用此函数:

@using (Html.BeginForm(actionName: "autoMagic", controllerName: "Magic", method: FormMethod.Post, htmlAttributes: new { id = "autoMagicForm" }))
    {
        @Html.Hidden("data")            
        <input type="button" value="go!" onclick="packData(this.form)" />
    }

表单应该充当传入POST请求的“模拟”。

我做了什么:

  • 发布设置为File System(在我的电脑上的本地文件夹中),启用了预编译,然后我将整个文件夹复制粘贴到远程服务器上。我还没有设置任何web.config转换。

  • 浏览器是相同的:Internet Explorer 10

  • 在远程服务器上,该文件夹设置为IIS中的应用程序,具有自己的应用程序池(Framework 4.0,集成)

我所看到的:

  • 在IIS Express(localhost)上,一切都按预期工作:javascript函数和调用的控制器都成功地发挥了它们的魔力。

  • 在部署服务器(http:testserver / site)上,IE抱怨 JSON未定义

看起来我错过了什么?

我尝试使用IE的F12工具捕获网络流量,但我没有看到任何404

1 个答案:

答案 0 :(得分:0)

在早期版本的IE(少IE8)中,未定义JSON对象(window.JSON)