2016-10-12 5 views
0

Я пытаюсь использовать jQuery для передачи «0002» в WebMethod. Но ведущие нули усечены :(GET (JSON) удаляет ведущие нули

$.ajax({ 
    type: "GET", 
    url: "CallNote.aspx/GetStoreRegion?storeCode=0002", 
    contentType: "application/json; charset=utf-8", 
    //dataType: "json", - Brad is right I don't need this line 
    success: function (response) { 
    console.log(response.d); 
    } 
}); 

В CallNote.aspx.cs:

[WebMethod] 
[ScriptMethod(UseHttpGet = true)] 
public static string GetStoreRegion(string storeCode) 
{ 
    // Problem: Here storeCode becomes "2", not "0002" 
    return myService.GetStoreRegion(storeCode); 
} 

Как вы передаете строку "0002" правильно

+0

Не уверен, что я понимаю. Все параметры запроса - это строки, и ничто в вашем коде не показывает автоматическое преобразование в числовой тип. Фактически, ничто в вашем коде не указывает на то, что «x0002» не работает, поскольку ваш тип данных «string» – Phil

+1

Не знаете, что ваш вопрос имеет отношение к JSON, поскольку в запросе нет JSON, и ваша проблема только при анализе данных запроса .... – Brad

+0

Он должен что-то сделать с кодом на стороне сервера, а не с javascript. Покажите нам, что у вас есть на вашем сервере. –

ответ

2

Итак, вы говорите? ASP.NET, что вы передаете данные как JSON. Итак, ASP.NET верит вам. Итак, что произойдет, если вы скажете var x = {storeCode: 0002};. Ну, это получило бы 2, потому что вы не окружите его кавычками. вам нужно сделать то же самое для своего параметра. Если вам нужна строка, которую вы бы сделали:так в вашем случае, если вы хотите:

url: "CallNote.aspx/GetStoreRegion?storeCode='0002'",

+0

Ты гениальный! Спасибо! – Aximili

+0

P.S., вы также можете использовать: PageMethods.GetStoreRegion ('0002') – aquinas

Смежные вопросы