问什么进不去ajax啊,第一个alert(url)可以弹出,但是里面的那两个就弹不出来了啊,代码如下:
function SaveSendAddress() {
var flag = ValidAddress();
if (flag == false)
return;
var orderID = jQuery('#hd_orderID').val();
var addressID = jQuery("#hd_address1ID").val();
var contactName = jQuery("#tb_sendContactname").val();
var address1 = jQuery("#tb_sendAddress1").val();
var address2 = jQuery("#tb_sendAddress2").val();
var city = jQuery("#tb_sendCity").val();
var province = jQuery("#tb_sendProvince").val();
var countryID = jQuery("#tb_sendCountryID").val();
var code = jQuery("#tb_sendCode").val();
var phone = jQuery("#tb_sendPhone").val();
var url = '/do3.html?type=edituseraddress1&orderID=' + orderID + '&addressID=' + addressID + '&contactName=' + escape(contactName) + '&address1=' + escape(address1)
+ '&address2=' + escape(address2) + '&city=' + escape(city) + '&province=' + escape(province) + '&countryID=' + countryID + '&code=' + escape(code) + '&phone=' + escape(phone);
alert(url);
jQuery.ajax(
{
url: url,
async: true,
success: function(data) {
alert(data);
alert(url);
if (data == "ok") {
window.location = window.location;
}
else {
alert('Operation failed');
}
}
});
有可能是返回的数据格式和返回声明的数据格式不符
所以没有执行success这一步
你可以写个complete:function(data){alert(data);}看看data到底是啥
或者直接用firebug之流的看看
我在那边输出的是ok,弹出的是[object xmlhttprequest],怎么回事啊
@待重逢: 看来就是我说的问题了,你看下后台,声明返回的数据类型是什么,再看看返回结果(用firebug或者chrome直接f12)
@飞来飞去: 返回的类型是void类型,结果是直接Response.Write("ok");Response.Write("error");
@待重逢: 把aspx里面的所有html代码删掉,然后.cs文件设置reponse.ContentType="text/plain",然后response.write("ok")
@飞来飞去: 还是一样的效果,这是怎么回事啊
@待重逢: 浏览器地址栏直接写上url,得到什么?
楼主的
url: url,这一步修改为一个固定的URL地址'http://www.qq.com'等,看看能弹出来不。用google浏览器来追踪调试js代码。
或者楼主将含HTML的全部代码贴出来,帮你看看。
html的效果能弹出来,就是不能执行里面的ajax代码啊
alert(data);
alert(url);
这两个弹窗是在AJAX调用执行成功后才弹得,可以分析出错的可能为
提交到的后台URL页面没有执行成功,比如URL地址有错。你将URL地址手工写入地址栏访问看看什么效果?
楼主,你的连着两个弹窗,第一个弹窗已经把数据传输给中断了,下面的那个数据自然弹不出来了。
关键是里面 的两个都没有弹出来啊
有点怀疑你的ajax是否请求成功了,success:function(){},error:function(){alert('error')}这样加个error看看。
error没有执行啊
那个路径没有接受到吧?所以ajax在url出错。