Javascript 当使用json时,ajax在IE10上失败

Javascript 当使用json时,ajax在IE10上失败,javascript,jquery,ajax,json,internet-explorer,Javascript,Jquery,Ajax,Json,Internet Explorer,我正在使用ajax调用rest服务 这一切都在Chrome上运行得很好,但是当从IE10运行它时,ajax调用失败了 我试图打印错误消息,但没有得到启发,只是说“未定义” ajax请求永远不会发送到服务器。 我看到一些帖子讨论了IE和json的问题,但还没有找到正确的解决方案 还有一点(不知道是否相关):如果我试图通过IE 10(将url放入浏览器)访问服务url,JSON不会显示。相反,它会询问我是否要打开文件 另外:请求是从一个html文件完成的。(与服务不在同一域下) 有什么想法吗 谢谢

我正在使用ajax调用rest服务

这一切都在Chrome上运行得很好,但是当从IE10运行它时,ajax调用失败了

我试图打印错误消息,但没有得到启发,只是说“未定义”

ajax请求永远不会发送到服务器。 我看到一些帖子讨论了IE和json的问题,但还没有找到正确的解决方案

还有一点(不知道是否相关):如果我试图通过IE 10(将url放入浏览器)访问服务url,JSON不会显示。相反,它会询问我是否要打开文件

另外:请求是从一个html文件完成的。(与服务不在同一域下)

有什么想法吗

谢谢

   var JSONObject= {
            "login":LogInUserName,
            "password": LogInPassword,
            };


    $.ajax({  
        url:'https .... ',  
        type:'post',
        data :  JSONObject,      
        dataType: 'JSON',
        success: function(data) { 
            if(data.hasOwnProperty('errors'))
                {
                    alert("errors found");
                    alert(data.errors);
                }
            else
                {
                    alert("data sent!");

                }


            }  ,
        error: function (request, status, error)  {
            alert ("error before sending");
            alert(request.responseText);
            location.reload();

        }


    });  

您需要做的第一件事是学会正确调试并与
F12
、Console选项卡和Network选项卡成为最好的朋友:

本教程展示了Google Chrome,但同样的理念也适用于IE或FireFox

1-使用console.log()而不是alert() 2-舒适地使用F12

  • 按F12
  • 转到“网络”选项卡
  • 在网站上键入内容并点击Go
  • 单击该beast并检查“响应”或“预览”选项卡中的错误

尝试删除此处多余的逗号:
“password”:LogInPassword,
在IE10上不应该再成为问题,但谁知道呢?!你试过使用IE10的调试器吗?按F12键打开,单击脚本选项卡,然后单击开始调试-您可以设置断点并查看特定时间的变量。编辑:另外,Wolff是对的-虽然其他浏览器通常可以处理这些额外的逗号,但这对我来说已经把IE搞砸了很多次。你可以尝试在ajax调用中添加,
cache:false
,不知道IE10是否正确,但IE8有一个习惯,即尝试缓存ajax调用,这将导致基本上不返回数据错误回调中的“error”参数表示什么?在这种情况下,听起来确实像是跨域发布到安全站点,在这种情况下,浏览器不应允许(默认情况下)。这是为了保护网站免受未经授权的使用。您需要开始阅读(很多)关于跨域解决方案的帖子,但通常最好的解决方案是从web服务器访问该服务,并使客户可以从同一域访问该服务。这不是答案。更多的是一套通用的有用的东西来尝试。最好是评论。@TrueBlueAussie太好了,我如何插入带有迷你标记的图像?你不能插入图像,尽管你可以用文本解释,但类似的教程应该放在博客上(你可以链接到)。只是说,这不是一个答案,而是一个评论(一个非常大的评论):)哈哈,我知道,我没有博客,但也许我可以把它变成StackOverflow WIKI或其他什么。
var JSONObject = {
    "login": LogInUserName,
    "password": LogInPassword // get rid of the comma, stop being lazy
};


$.ajax({
    url: 'https .... ',
    type: 'post',
    data: JSONObject,
    dataType: 'JSON',
    success: function (data) {

        // hit F12 and check the console
        console.log(data); // F off alert()!

    },
    error: function (request, status, error) {

        console.log(request); // F off alert()!
        console.log(status); // F off alert()!
        console.log(error); // F off alert()!

        // don't reload, we have an issue
        // location.reload();

    }


});