#javascript #ajax
#javascript #ajax
Вопрос:
Я пытаюсь выполнить вызов Ajax с 2 параметрами. 1 — это DTO, а другой — строка.
Проблема в том, что он отлично работает, когда я отправляю 1 параметр. Когда я отправляю два параметра, он не может найти метод прокси и возвращает 404.
Это работает: dto:
loginInfo = {
Email: txtEmail,
Password: txtPassword
};
self.ajaxService({
url: appSettings.CandidateServiceUrl "/Login",
data :JSON.stringify(loginInfo),
makeBusy: true,
type: "POST",
….
Но когда я хочу добавить дополнительные параметры, строку, это не работает..
data :{ 'loginInfo': JSON.stringify(loginInfo) , 'SiteName' : 'test' }
,
Я попытался создать DTO-оболочку, которая будет содержать my dto и string . Это работает. Но я хочу отправить как два метода.
Мой прокси-метод выглядит примерно так
[HttpPost]
public HttpResponseMessage Login(LoginDto dto, string SiteName)
{
}
Комментарии:
1.
JSON.stringify()
весь второйdata
параметр.2. Я пытался
data :{ 'loginInfo': JSON.stringify(loginInfo) , 'SiteName' : JSON.stringify('test') },
, но все равно получал 404.. Когда я попытался просмотреть запрос..loginInfo={"Email":"abcr@gmail.com","Password":"lkadlkfkjdlkfj"}amp;SiteName="test"
Просто интересно.. должен ли я указывать второй параметр, поскольку он уже является строкой?3. Я имел в виду не второй параметр, а весь
data
атрибут:data : JSON.stringify({ 'loginInfo': JSON.stringify(loginInfo) , 'SiteName' : 'test' })
— в данный момент вы передаете ему объект4. Отлично .. я думаю, что я почти близок к этому .. В то время как это сделало его как два отдельных объекта.. я все еще получаю 404.. В тот момент, когда я меняю свой метод контроллера, чтобы иметь подпись оболочки.. это работает.. когда я проверил скрипача .. это переданное исходное значение
{"loginInfo":"{"Email":"kjdklf@gmail.com","Password":"lkljdflkdsjflk"}","SiteName":"test"}
, и оно работает, когда я меняю сигнатуру моего метода наpublic HttpResponseMessage Login(WrapperLoginDto dto)
оболочку, содержащую как данные для входа, так и имя сайта