Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 未从Ajax调用中调用WebMethod_Jquery_Asp.net Ajax - Fatal编程技术网

Jquery 未从Ajax调用中调用WebMethod

Jquery 未从Ajax调用中调用WebMethod,jquery,asp.net-ajax,Jquery,Asp.net Ajax,我正在尝试执行下面的代码以实现自动完成,但是当我调试/执行代码时。我注意到它没有击中我的web方法 我的ASPX代码 <script type="text/javascript" language="javascript"> $(document).ready(function () { SearchText(); }); function SearchText() { $('#<%=TextBox1.ClientID

我正在尝试执行下面的代码以实现自动完成,但是当我调试/执行代码时。我注意到它没有击中我的web方法

我的ASPX代码

<script type="text/javascript" language="javascript">
    $(document).ready(function () {
        SearchText();
    });  
    function SearchText() {
        $('#<%=TextBox1.ClientID %>').autocomplete({
            source: function (request, response) {
                var param = { searchStr: $('#TextBox1').val() };
                $.ajax({
                    type: 'POST',
                    contentType: "application/json; charset=utf-8",
                    url: "WebForm1.aspx/GetCountry",
                    // data: "{searchStr:JSON.stringify('u')}",
                    data: "{searchStr: 'xx'}",
                    //data: JSON.stringify(param),
                    dataType: "json",
                    success: function (data) {
                        response(data.d);

                    },
                    error: function (msg, text) {
                        alert(msg);
                    }
                });
            }
        });
    }
</script>
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>

$(文档).ready(函数(){
SearchText();
});  
函数SearchText(){
$('#')。自动完成({
来源:功能(请求、响应){
var param={searchStr:$('#TextBox1').val();
$.ajax({
键入:“POST”,
contentType:“应用程序/json;字符集=utf-8”,
url:“WebForm1.aspx/GetCountry”,
//数据:{searchStr:JSON.stringify('u')},
数据:“{searchStr:'xx'}”,
//数据:JSON.stringify(param),
数据类型:“json”,
成功:功能(数据){
答复(数据d);
},
错误:函数(消息,文本){
警报(msg);
}
});
}
});
}
C#代码背后的代码——简单地为测试目的硬编码值

[WebMethod(EnableSession = true)]
[ScriptMethod(UseHttpGet = true,    ResponseFormat = ResponseFormat.Json)] 

public static string[] GetCountry(string searchStr)
{
   List<string> listCt = new List<string>();
   listCt.Add("UnitedStates");
   listCt.Add("UnitedKingdom");
   listCt.Add("UnitedArab");
   listCt.Add("UnitedNations");
   return listCt.ToArray();
}
[WebMethod(EnableSession=true)]
[ScriptMethod(UseHttpGet=true,ResponseFormat=ResponseFormat.Json)]
公共静态字符串[]GetCountry(字符串searchStr)
{
List listCt=新列表();
添加列表(“美国”);
添加列表(“英国”);
添加列表(“UnitedArab”);
添加列表(“联合国”);
返回listCt.ToArray();
}

hmmm为什么要使用aspx页面?我过去已经做过类似的事情,但是使用.asmx文件,这两种方法都有可能,我尝试过两种方法;但是没有结果……试图找出错误……任何值得赞赏的帮助我想你不能在json字符串中以那种方式使用单引号“{searchStr:'xx'}”。好的,我想我知道问题出在哪里了。您使用$.ajax发布数据,但该方法只响应Get请求。Remove UseHttpGet=true。