Click here to Skip to main content
15,889,116 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
Hi,
I've been having a challenge posting some form data to a web service method. It returned

"Request format is unrecognized for URL unexpectedly ending in '/SaveQuestionSetting'"
I have my web service method as this

C#
public static CBTDLCFDBEntities context = new CBTDLCFDBEntities();
        [WebMethod]
        public static void SaveQuestionSetting(Subject subject)
        {
try
            {
                context.Subjects.Add(subject);
                context.SaveChanges();
            }
            catch (Exception ec)
            {
                //
            }


javascript:

C#
$(document).ready(function () {
            var messageLabel = $('#lblResult');
            // messageLabel.hide();
            $('#btnSaveQuestionNoSetting').click(function () {
                //var tlength = $("input:text").length;
                var subjIds = new Array();
                var qNums = new Array();
                var i = 0;
                $(".inline :input").each(function () {
                    var count = $(this).attr('name');
                    subjIds[i] = count;
                    qNums[i] = $(this).val();
                    i++;
                });
$.ajax({
                    url: "../SettingService.asmx/SaveQuestionSetting",
                    method: 'POST',
                    data: { subjectIds: JSON.stringify(subjIds), qCount: JSON.stringify(qNums) },
                    //async: true,
                    contentType:"application/x-www-form-urlencoded;charset=UTF-8",
                    success: function (response) {
                        console.log(response.d);
                        messageLabel.text("Saved successfully");
                        var btn = $('#btnSaveQuestionNoSetting');
                        btn.removeClass("btn-blue");
                        btn.addClass("btn-success");
                        btn.val("Saved");
                        messageLabel.fadeOut(5000);
                        btn.removeClass("btn-success");
                        btn.addClass("btn-blue");
                    },
                    error: function (errMsg) {
                        console.log("An error has occured");
                        console.log(errMsg);
                    }
                });

            });
        });
Posted
Updated 23-Jul-15 4:01am
v2
Comments
F-ES Sitecore 23-Jul-15 7:13am    
You'll need to post the calling code.
matmape 23-Jul-15 9:03am    
$(document).ready(function () {
var messageLabel = $('#lblResult');
// messageLabel.hide();
$('#btnSaveQuestionNoSetting').click(function () {
//var tlength = $("input:text").length;
var subjIds = new Array();
var qNums = new Array();
var i = 0;
$(".inline :input").each(function () {
var count = $(this).attr('name');
subjIds[i] = count;
qNums[i] = $(this).val();
i++;
});
$.ajax({
url: "../SettingService.asmx/SaveQuestionSetting",
method: 'POST',
data: { subjectIds: JSON.stringify(subjIds), qCount: JSON.stringify(qNums) },
//async: true,
contentType:"application/x-www-form-urlencoded;charset=UTF-8",
success: function (response) {
console.log(response.d);
messageLabel.text("Saved successfully");
var btn = $('#btnSaveQuestionNoSetting');
btn.removeClass("btn-blue");
btn.addClass("btn-success");
btn.val("Saved");
messageLabel.fadeOut(5000);
btn.removeClass("btn-success");
btn.addClass("btn-blue");
},
error: function (errMsg) {
console.log("An error has occured");
console.log(errMsg);
}
});

});
});
F-ES Sitecore 23-Jul-15 10:06am    
Use Fiddler or the browser's dev tools to look at the network call, that will probably tell you any errors that occur. Maybe pass your param data using JSON rather than form encoding. Change the content type to application/json and use JSON.stringify on what you are currently putting in "data:" to convert it to a json string.

http://forums.asp.net/t/1934215.aspx?Using+jQuery+ajax+to+call+asmx+webservice+methods
Sreekanth Mothukuru 23-Jul-15 8:12am    
and how are you calling this from client side ?
The problem is with the ajax call.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900