Ajax调用在localhost上工作但在azure-webites.net上没有

时间:2017-03-04 12:04:32

标签: azure-web-sites

<script type="text/javascript">
    
    $(document).ready(function () {

        function validemail(isemail) {
            var emailReg = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
            return emailReg.test(isemail);
        }

        $("#<%=txtEmail.ClientID %>").blur(function () {            
            if ($("#<%=txtEmail.ClientID %>").siblings().size() > 0) {
                $("div").remove(".tooltips");
            }
        });


        $("#btnSubmit").click(function () {
            var name = $("#<%=txtName.ClientID %>").val();
            var email = $("#<%=txtEmail.ClientID %>").val();
            var message = $("#<%=txtMessage.ClientID %>").val();
            if (name != '' && email != '' && message != '') {
                if (validemail(email)) {
                    $.ajax({
                        type: "POST",
                        contentType: "application/json; charset=utf-8",
                        url: "http://abcname.azurewebsites.net/Contact.aspx/InsertData",
                        data: "{'customername':'" + name + "','customeremail':'" + email + "','customermessage':'" + message + "'}",
                        dataType: "json",
                        success: function (data) {
                            var obj = data.d;
                            if (obj == 'true') {
                                $("#<%=txtName.ClientID %>").val('');
                                $("#<%=txtEmail.ClientID %>").val('');
                                $("#<%=txtMessage.ClientID %>").val('');
                                alert('Details submitted successfully');
                            }
                        },
                        error: function (result) {
                            alert("An error occur while submitting details.");
                        }
                    });
                }

                else {
                    $("#<%=txtEmail.ClientID %>").focus();
                    $("<div class='tooltips'><span>Invalid Email Address</span></div>").insertAfter("#<%=txtEmail.ClientID %>");
                }
            }
            else {
                alert('Please fill all the fields');              
            }
        });
    });

</script>

上面的代码完全适用于本地主机,但它不在服务器端。如果.cs文件有任何错误,那么它将显示警告框,但它甚至没有显示警告框“提交详细信息时出错”

1 个答案:

答案 0 :(得分:0)

  

url:&#34; http://abcname.azurewebsites.net/Contact.aspx/InsertData&#34;,

根据URL,我怀疑您使用WebMethod处理WebForms应用程序中的AJAX请求。由于您的URL中有.aspx后缀,请确保您已注释掉RouteConfig.cs中默认存在的以下代码。

//settings.AutoRedirectMode = RedirectMode.Permanent;
  

但它甚至没有显示警告框&#34;提交详细信息时发生错误&#34;

     

var obj = data.d;

原因可能是响应已返回,但它不包含名为d的属性或其值不等于'true'。我建议使用工具查看详细响应消息。 Fiddler是可以帮助您实现此目标的常用工具。

此外,您是否从不同的域发送了AJAX请求&#39; http:// abcname .azurewebsites.net&#39;?例如,您发布的代码位于名为&#39; http:// defname .azurewebsites.net&#39;的网站中。如果是,则需要在abcname web app中配置CORS。以下步骤供您参考。

  1. 在Azure门户中,打开网络应用程序abcname。
  2. 在菜单栏上,单击“CORS”。
  3. 在“允许的区域”文本框中输入域名。
  4. 单击[保存]按钮以保存所有操作。
  5. enter image description here