Получение 400 (плохой запрос) - PullRequest
0 голосов
/ 28 апреля 2020

Я делаю jQuery AJAX POST-запрос к моей службе WCF. В этом вызове я анализирую сложные данные для метода WCF, но получаю ошибку 400 Bad Request.

Я могу получить ожидаемый результат от службы, когда проверяю тот же самый вызов из Postman.

var data = {
  // my data
};
var url = "my service url"

$.ajax({
  type: 'POST',
  url: url,
  data: data,
  dataType: 'json',
  contentType: "application/json; charset=UTF-8",
  crossDomain: "*",
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
  },
  success: function(resp) {
    alert('Success' + resp);
  },
  error: function(jqXHR, textStatus, errorThrown) {
    alert("Status: " + jqXHR.status + "; Error: " + jqXHR.responseText); // Display error message  
  }
});

1 Ответ

0 голосов
/ 29 апреля 2020

Когда мы передаем параметры со строкой JSON, мы должны добавить escape-строки перед кавычками.

       var compsiteType={
            "StringValue":"Hello",
            "BoolValue":true
        };
    $(function(){
        $.ajax({
            method:"POST",
            url: "http://10.157.13.69:8864/Service1.svc/GetDataUsingDataContract",
            dataType:"json",
            data:'{\"StringValue\":\"Hello\",\"BoolValue\":true}',
            contentType: "application/json",
            complete: function(data){
                $("#main").html(data.responseText);
            }
        })
})

Поэтому преобразование объекта JSON в строку JSON необходимо, прежде чем вызов.

var compsiteType={
    "StringValue":"Hello",
    "BoolValue":true
};
    dataType:"json",
    data:JSON.stringify(compsiteType),

Кроме того, ошибка 400 Bad Request обычно указывает, что что-то не так с форматом параметра запроса.
В зависимости от нижеприведенного атрибута, метод обслуживания будет принимать различные типы форматы параметров.

[WebInvoke(BodyStyle =WebMessageBodyStyle.Bare,RequestFormat =WebMessageFormat.Json)]
        string  GetDataUsingDataContract(CompositeType composite);

Пожалуйста, обратитесь к ссылкам, на которые я когда-либо отвечал.
Получите нулевой объект, используя JSON в службе WCF
Не стесняйтесь сообщить мне, если проблема все еще существует.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...