我正在做一个小项目。主要是为了获得一些理解,因为我是一个完整的网络菜鸟。在以下问题中可能会或可能不会明显。
我的最终结果是从数据库中获取一堆值。将它们放入 JSON 对象,然后使用一些 jQuery/JavaScript 处理数据。我一直在做大量的阅读,在这里浏览了大量的帖子,但我找不到与我的问题有关的东西。
我正在使用 VS2010 C#。我在客户端受 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") });}
我在 Firefox 中没有收到任何 Javascript 错误,但在 IE7 中却有。永远不会在alert("Loading JSON")
任何地方开火。我从来没见过。
我的 getMarkers.aspx 代码
public partial class getMarkers : System.Web.UI.Page {
protected void Page_Load(object sender, EventArgs e) {
JavaScriptSerializer jsonSer = new JavaScriptSerializer();
List<marker> markerList = new List<marker>();
markerList.Add(new marker(-34.397, 150.644, "Test"));
markerList.Add(new marker(-50, 150.644, "Test2"));
string sJSON = jsonSer.Serialize(markerList);
Response.ContentType = "application/json";
Response.Write(sJSON);
}
}
我可以单击“statusDiv”中的链接,它会将我带到 aspx 页面。我在 IE7 中遇到错误,但在 Firefox 中可以正常工作。在这些页面中解析回给我的 JSON 是正确的。我将响应复制并粘贴到另一个函数中,绘图仪将两个图钉放在我的地图上。
代码似乎没有进入
$.getJSON
函数。IE7 的设置存在问题(或一般问题)
getMarkers.aspx
。谷歌搜索了一些教程,这就是我结束的地方。我的方法可能完全错误。或者我错过了我应该做的事情。我似乎找不到那个具体的教程,它一定是在我愤怒的 2 天并计数谷歌冒险中意外关闭的。
FirefoxgetMarkers.aspx
将 JSON 显示为第一行,然后是 html。只是浏览器中的纯文本。
IE7 显示一个 XML 错误并告诉我 JSON 字符串不允许出现在文档的顶层。我确实阅读了一些关于 IE7 的文章,总是试图用一个精心设计的解决方法来解析 XML。我不能这样做,因为我不知道有多少客户会使用它。有没有更好的方法来做我正在做的事情?
如果有人能指出我需要去的方向,我将不胜感激。希望我的帖子不会太复杂。