2014-01-31 2 views
0

Я пытаюсь вызвать службу отдыха с использованием $ .Post(). Синтаксис для вызова моей услуги приведен ниже:

$.post("http://MyIp/SaveUserVote", { "PostId": 1, "UserId": 3 }, function (result) { 
          alert("success"); 
         }); 

Мое обслуживание берет ввод и возвращает результат в JSON. Пожалуйста, проверьте мою службу отдыха ниже:

public object Post(SaveUserVote request) 
    { 

     if (string.IsNullOrEmpty(request.PostId.ToString())) 
      throw new ArgumentNullException("Required", "PostId cannot be null"); 

     try 
     { 
      return SaveUserVote(request); 
     } 
     catch (Exception ex) 
     { 
      objResult._result = "NotSuccess"; 
      dicResult.Add("UserVote", objResult); 

      string output = JsonConvert.SerializeObject(dicResult); 
      return output; 
     } 
    } 

     public string SaveUserVote(SaveUserVote userPost) 
    { 
       Result objResult = new Result(); 
       Dictionary<string, Result> dicResult = new Dictionary<string, Result>(); 
       var objVote = new PostVote 
      { 
       PostId = userPost.PostId, 
       UserId = userPost.UserId, 
      }; 
      _dbcontext.PostVotes.InsertOnSubmit(objVote); 
      _dbcontext.SubmitChanges(); 


     objResult._result = "Success"; 
     dicResult.Add("UserVote", objResult); 

     string output = JsonConvert.SerializeObject(dicResult); 
     return output; 
    } 

      public class Result 
    { 
     public string _result { get; set; } 
    } 

Эта услуга работает нормально, когда я ударил эту форму на стороне сервера. Но он не дает ответа, когда я проверяю свою Сеть в Firebug на браузере Firefox, вызывая ее с помощью сообщения ajax. Может ли кто-нибудь убрать меня из этой проблемы. Я думаю, что я делаю глупую синтаксическую ошибку при вызове или пропущенном параметре, который потребуется для получения ответа. Спасибо

ЛЮБОЙ БЫСТРЫЙ ПОМОЩЬ?

ответ

0

Возможно, вы столкнулись с фолом same origin policy для XMLHttpRequests. В основном запросы ajax могут быть сделаны только на той же схеме/хост/порт, что и на странице с Javascript.

У вас действительно есть абсолютный URL-адрес, жестко закодированный в вызове $.post()? Переход на относительный URL-адрес устранит эту возможность $.post("/SaveUserVote", ..., гарантируя, что схема, хост и порт будут одинаковыми.

Вы видите исходящий запрос POST ajax на вкладке сети вашего браузера dev tools? (F12 в IE, Ctrl-Shift-I в хроме).

+0

Фактически услуга размещена на IIS моего местного пользователя, и да, я получил удар по моему сервису, это означает, что почта работает – user3124690

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