2014-11-04 2 views
0

Ошибка при использовании POST с использованием JSON в ASP.NET. Пожалуйста, проверьте мой код, когда я использовал POST. Что-то не так, когда код javascript?Служба WCF JSON Сообщение с использованием ASP.NET

Точная ошибка:

Не удалось загрузить ресурс: сервер ответил со статусом 405 (Method Not Allowed) локальный: 99/Service1.svc/апи/updtelogin.json XMLHttpRequest не может загрузить локальный: 99/Service1.svc/API/updtelogin.json. Нет Заголовок «Access-Control-Allow-Origin» присутствует на запрошенном ресурсе . Происхождение localhost: 1110 'поэтому не разрешено. доступ. Ответ был HTTP код статуса 405.

IService

[OperationContract] 
    [WebInvoke(Method = "POST", 
     RequestFormat = WebMessageFormat.Json, 
     ResponseFormat = WebMessageFormat.Json, 
     BodyStyle = WebMessageBodyStyle.Wrapped, 
     UriTemplate = "api/updtelogin.json")] 
    UpdateUser updteUser(RequestData rData); 

RequestData

[DataContract(Namespace = "")] 
public class RequestData 
{ 
    [DataMember] 
    public string details { get; set; } 
} 

Service.svc

private UpdateUser updateuser(RequestData rData) 
    { 
     return updteUser(rData); 
    } 

    public UpdateUser updteUser(RequestData rData) 
    { 
     var data = rData.details.Split('|');    

    } 

И это мой Javascript из ASP.NET

<script type="text/javascript"> 
    $("#btnChange").live("click", function() { 
     var test = {}; 
     test.uname = "admin"; 
     $.ajax({ 
      type: 'POST', 
      url: 'http://localhost:99/Service1.svc/api/updtelogin.json', 
      data: "{rData:" + JSON.stringify(test) + "}", 
      contentType: 'application/json; charset=utf-8', 
      dataType: 'json', 
      success: function (r) { 
       alert(r.d.uname); 
      } 
     }); 
    }); 
</script> 

ответ

1

Поправьте меня, если я ошибаюсь, у вас есть два приложения:

  • локальный: 99 - ФОС сервис
  • локальный: 1110 - веб-приложение, призывающих к вашим услугам ФОС

Это нарушает "same origin policy" для вашего запроса ajax из-за разного порта.

Здесь у вас есть инструкции, как добавить заголовки CORS в WCF службы: Enable CORS on WCF Service. Get HTTP 405: Method Not Allowed

+0

Что я получаю сейчас Неверный запрос POST локальный: 99/Service1.svc/апи/updtelogin.json 400 (Bad Request) –

+0

похоже, проблема десериализации: данные: "{RDATA:" + JSON.stringify (тест) + "}" не соответствует вашему типу RequestData: общественного класс RequestData { [DataMember] общественности струнных деталей {получить ; задавать; } } – b2zw2a

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