Javascript Ajax отправляет сложные параметры Mutiple

#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) оболочку, содержащую как данные для входа, так и имя сайта