日期:2014-05-16  浏览次数:20615 次

jQuery Ajax提交success部分不执行问题
作了一个遍历json脚本文件程序。
music.json放在服务器端(我是在win7上用IIS7.5建的服务器),然后再其他客户PC上执行遍历music.json文件的测试程序。
放在服务器端的music.json文件如下:
[
{"optionKey":"1", "optionValue":"Canon in D"},
{"optionKey":"2", "optionValue":"Wind Song"},
{"optionKey":"3", "optionValue":"Wings"}
]

客户PC上的测试程序如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Test JISON</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js">
</script>
<script>
$(document).ready(function(){
$('#button').click(function(){
$.ajax({
type:"GET",
url:"http://192.168.12.17:8087/music.json",
// dataType:"json",
async:false,
success:function(data){
var music="<ul>";
//i表示在data中的索引位置,n表示包含的信息的对象
$.each(data,function(i,n){
//获取对象中属性为optionsValue的值
music+="<li>"+n["optionValue"]+"</li>";
});
music+="</ul>";
$('#result').append(music);
}
});

 return false;
});
});
</script>
</head>

可是success:function(data)不能执行。非常困惑,请各位大虾,童鞋帮忙。
jQuery?Ajax HTML

------解决方案--------------------
为什么要把 dataType:"json", 注释掉?
没有这个就不会自动解析成 json 对象,$.each(data,... 也就只会报错

可能你的 web 服务器不能识别 json 这个 mime 类型,从而拒绝输出
可写改成 .txt 或 .htm 试试,如果成了,则需要给 web 服务器添加 json 类型
------解决方案--------------------
url:"http://192.168.12.17:8087/music.json"

1.测试程序部署在客户PC?客户运行这个网页的地址是什么,可能会遇到跨域问题

2.直接在浏览器中输入music.json的地址是否能访问到数据?

3.最好打开chrome或者firebug,看一看在AJAX请求的时候Console那里输出了什么错误没有。
------解决方案--------------------
引用:
Quote: 引用:

$(document).ready(function()
上面