Jam*_*Hay 3 asp.net jquery webmethod
好的,所以到目前为止我的网站一直在正常工作,我不确定我改变了什么.我有一个jQuery AJAX调用,它将优惠券代码发送到服务器,并检索一个数字(这是折扣).
Webmethod不再被解雇,而是正在触发webmethod所在页面的Page_load.为什么?我能检查什么?我能做什么?
这是我点击按钮时的处理程序
$('div#code_apply_btn').click(function() {
$(this).html('PLEASE WAIT');
getpromocode();
});
Run Code Online (Sandbox Code Playgroud)
这是AJAX调用
function getpromocode(){
var pcode = $('input#input_circuitcode').val();
var hid = parseInt($('input#ss_id_h').val());
$.ajax({
type: "POST",
url: "register.aspx/get_promocode",
data: '{"promo":"' + pcode + '", "uid":' + hid + '}',
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (msg) {
if (msg.d != -1) {
applydiscount(msg.d);
$('div#reg_circuit').show();
$('div#circuit_promo').hide();
$('div#reg_circuit').click();
}
else {
$('input#input_circuitcode').val('');
$('div#code_apply_btn').html('APPLY CODE');
}
},
error: function (msg) {
alert(msg);
}
});
}
Run Code Online (Sandbox Code Playgroud)
这是网络方法
[WebMethod]
public static int get_promocode(string promo, int uid)
{
return DAC.GetPromoCode(promo);
}
Run Code Online (Sandbox Code Playgroud)
Web方法永远不会被调用,但是Page_load事件会触发并运行一切,然后它会收到500错误,因为它不应该被调用,并且没有它需要的所有数据.
编辑:
我使用Web方法的所有其他页面都可以正常工作.这只是这个页面.
另一个奇怪的行为:在我开始输入"register.aspx"时,在chrome中,调用Page_load.我的所有其他页面都很好,这不会发生.
我找到了问题的答案:
因为我有VS2008我只能使用.Net 3.5.然而我的服务器有.Net 4.0或2.0无论出于什么原因我无法选择3.5,因为我希望如此.因此,每次我移动项目时,我都必须更改web.config,因为默认的3.5配置充满了4.0不喜欢的大量内容.
所以我记得我已经将web.config清空到仍然在3.5中运行的准系统版本,这就是问题所在.我把它缩小到这些我从3.5本地运行的版本中排除的行
<httpModules>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule,
System.Web.Extensions, Version=3.5.0.0, Culture=neutral,
PublicKeyToken=31BF3856AD364E35"/>
</httpModules>
Run Code Online (Sandbox Code Playgroud)
我想脚本模块是将jQuery请求传递给Web方法而不是默认页面处理程序的东西.你去..但没有明显的错误或任何东西,它只是没有用.
| 归档时间: |
|
| 查看次数: |
5031 次 |
| 最近记录: |