Javascript 使用jQuery从asp.net响应中检索JSON值

Javascript 使用jQuery从asp.net响应中检索JSON值,javascript,asp.net,json,jquery,Javascript,Asp.net,Json,Jquery,我在做一个小项目。主要是为了获得一些理解,因为我是一个完全的网络迷。在以下问题中可能是明显的,也可能不是明显的 我的最终结果是从数据库中获取一组值。将它们放入JSON对象中,然后使用一些jQuery/JavaScript处理数据。我读了很多书,浏览了很多帖子,但是我找不到与我的问题相关的东西 我在VS2010C工作。我在客户端受IE7的约束,但我可以用Firefox进行测试。我现在还在做localHost 我的JavaScript如下所示 function plotMarkers() { var

我在做一个小项目。主要是为了获得一些理解,因为我是一个完全的网络迷。在以下问题中可能是明显的,也可能不是明显的

我的最终结果是从数据库中获取一组值。将它们放入JSON对象中,然后使用一些jQuery/JavaScript处理数据。我读了很多书,浏览了很多帖子,但是我找不到与我的问题相关的东西

我在VS2010C工作。我在客户端受IE7的约束,但我可以用Firefox进行测试。我现在还在做
localHost

我的JavaScript如下所示

function plotMarkers() {
var pathStart = new String(window.location);
var newPath = pathStart.replace("Default.aspx", "getMarkers.aspx");
alert(newPath);
$("#statusDiv").html('<a href="' + newPath + '">JSON Data</a>');

$.getJSON(newPath, function (data) {

    alert("Loading JSON");
    $.each(data, function (index, elem) {

        var myLatlng = new google.maps.LatLng(elem.lat, elem.lng);
        var marker = new gogle.maps.Marker({
            position: myLatlng,
            title: elem.title
        });

        marker.setMap(map);
    });

}, function () { alert("loaded") });}
我可以点击“statusDiv”中的链接,它会将我带到aspx页面。我在IE7中遇到了一个错误,但在Firefox中效果很好。在这些页面中解析回我的JSON是正确的。我在另一个函数中复制并粘贴了响应,绘图仪将两个针脚放在我的地图上

  • 代码似乎没有进入
    $.getJSON
    函数

  • IE7在设置my
    getMarkers.aspx
    时存在问题(或一般问题)。谷歌搜索了一些教程,这就是我的结局。我的方法可能是完全错误的。或者我错过了我应该做的事。我似乎找不到那个具体的教程,它一定是在我愤怒的两天和数谷歌冒险的过程中意外关闭的

  • Firefox
    getMarkers.aspx
    将JSON显示为第一行,后跟html。浏览器中只有纯文本

    IE7显示一个XML错误,并告诉我不允许在文档的顶层使用JSON字符串。我确实读过一些关于IE7的文章,这些文章总是试图用一种复杂的解决方法来解析XML。我不能这么做,因为我不知道有多少客户会使用它。有没有更好的方法来做我正在做的事情


    如果有人能指点我该走的方向,我将不胜感激。希望我的帖子不会太复杂。

    对于初学者来说,我觉得你需要这个库来处理IE7的问题


    至于启动函数,我看不到实际调用plotMarkers()的任何地方,它只是定义的?

    对于初学者来说,我认为您需要库来处理IE7的问题


    至于启动函数-我看不到实际调用plotMarkers()的任何地方,它只是定义的?

    您可能希望在页面加载方法的末尾有一个Response.End(),这样页面的其余部分就不会在JSON之后呈现。

    您可能希望在页面加载方法的末尾有一个Response.End(),这样,页面的其余部分就不会在JSON之后呈现。

    单击#statusDiv链接时,是否尝试在现有页面的地图上显示标记? 如果是这样,那你就错了:不要在#statusDiv中添加链接,只要确保在单击getJSON函数时调用它就行了。试试这个:

    function plotMarkers() {
        var pathStart = new String(window.location);
        var newPath = pathStart.replace("Default.aspx", "getMarkers.aspx");
        alert(newPath);
        $("#statusDiv").text('JSON Data');
        $("#statusDiv").on('click',function(){
    
            $.getJSON(newPath, function (data) {
    
            alert("Loading JSON");
            $.each(data, function (index, elem) {
    
                var myLatlng = new google.maps.LatLng(elem.lat, elem.lng);
                var marker = new gogle.maps.Marker({
                    position: myLatlng,
                     title: elem.title
                });
    
                marker.setMap(map);
            });
    
        }, function () { alert("loaded") });
    });
    }
    

    单击#statusDiv链接时,是否尝试在现有页面的地图上显示标记? 如果是这样,那你就错了:不要在#statusDiv中添加链接,只要确保在单击getJSON函数时调用它就行了。试试这个:

    function plotMarkers() {
        var pathStart = new String(window.location);
        var newPath = pathStart.replace("Default.aspx", "getMarkers.aspx");
        alert(newPath);
        $("#statusDiv").text('JSON Data');
        $("#statusDiv").on('click',function(){
    
            $.getJSON(newPath, function (data) {
    
            alert("Loading JSON");
            $.each(data, function (index, elem) {
    
                var myLatlng = new google.maps.LatLng(elem.lat, elem.lng);
                var marker = new gogle.maps.Marker({
                    position: myLatlng,
                     title: elem.title
                });
    
                marker.setMap(map);
            });
    
        }, function () { alert("loaded") });
    });
    }
    

    它是从
    $(document)调用的。ready
    将url置于statusDiv中的代码正在工作,所以我知道它已经完成了。啊,好的,没关系。你能为Firefox安装Firebug,看看当你的.aspx页面从客户端调用时是否有任何结果返回,或者是404ing吗?它是从
    $(文档)调用的。就绪
    将url置于statusDiv的代码正在工作,所以我知道它已经完成了。啊,好的,那很好。您是否可以安装Firefox的Firebug,并查看当从客户端调用.aspx页面时,该页面是否返回任何结果,或者是否为404ing?最好还是使用HttpHandler,因为它的重量要轻得多。如果使用.NET 4.5:,则使用WebAPI),就是这样。我仍然在IE中得到一个JS错误,但它运行并打印。有道理。我假设它试图将所有HTML解析为JSON,然后它就失败了。(我接近了吗?)非常感谢!在添加Response.End()之前,.aspx文件中是否有代码?如果是这样的话,那可能是IE不喜欢的。我有序列化的测试数据。响应是转储html,我认为jQuery试图解析它,但失败了。最好还是使用HttpHandler,因为它的重量要轻得多。如果使用.NET 4.5:,则使用WebAPI),就是这样。我仍然在IE中得到一个JS错误,但它运行并打印。有道理。我假设它试图将所有HTML解析为JSON,然后它就失败了。(我接近了吗?)非常感谢!在添加Response.End()之前,.aspx文件中是否有代码?如果是这样的话,那可能是IE不喜欢的。我有序列化的测试数据。响应是转储html,我认为jQuery试图解析它,但失败了。不,绘图是在页面加载时发生的。我没有包括那个代码,因为它是有效的。我只是把它放在这个函数中,所以它是模块化的。所有警报和div更新都用于调试。否,打印在页面加载时进行。我没有包括那个代码,因为它是有效的。我只是把它放在这个函数中,所以它是模块化的。所有警报和div更新都用于调试。