标签: jquery-post

成功的jquery ajax发布后,RedirectToAction无法正常工作?

以下内容不会重定向我的页面:这是MVC代码:

    [HttpPost]
    public ActionResult GoHome()
    { 
         return RedirectToAction("Index", "Home");   
    }
Run Code Online (Sandbox Code Playgroud)

这是ajax帖子:

   $.support.cors = true;

            $.ajax({
                type: "POST",
                url: "http://localhost/UserAccount/GoHome",
                dataType: 'json',
                crossDomain: true
            });
Run Code Online (Sandbox Code Playgroud)

该帖子是成功的,当它与GoHome操作发生冲突时,它不会重定向到Home Controller的Index Action.

c# jquery post jquery-post asp.net-mvc-2

42
推荐指数
1
解决办法
4万
查看次数

$ .post()不会以json的形式发送数据,而是以x-www-form-urlencoded的形式发送数据

这个真的很奇怪.我$.post()在代码中有多个,但有一个dunno为什么发送json参数x-www-form-urlencoded而不是因此不起作用.

这是代码:

$.post("/Route/SaveTransportProperties", { properties: JSON.stringify(propArray), currTravelBox: JSON.stringify(travelBoxObj), accessToken: getAccessToken()}, function(data)
    {
        //DO STUFF
    });
Run Code Online (Sandbox Code Playgroud)

XHR在Firefox中看起来像这样: Firefox截图

任何想法为什么会发生这种情况?我还将类型强制为'json',但也不起作用.

jquery post jquery-post

32
推荐指数
3
解决办法
7万
查看次数

jQuery将CSRF令牌添加到所有$ .post()请求的数据中

我正在开发一个Laravel 5应用程序,该应用程序默认为所有POST请求启用CSRF保护.我喜欢这个增加的安全性所以我正在尝试使用它.

在发出简单$.post()请求时,我收到'Illuminate\Session\TokenMismatchException'错误,因为_tokenPOST数据中缺少所需的表单输入.以下是有问题的$ .post请求的示例:

var userID = $("#userID").val();
$.post('/admin/users/delete-user', {id:userID}, function() {
// User deleted
});
Run Code Online (Sandbox Code Playgroud)

我将CSRF令牌存储为标题中的元字段,可以使用以下方法轻松访问它:

var csrf_token = $('meta[name="csrf-token"]').attr('content');
Run Code Online (Sandbox Code Playgroud)

是否可以将此附加到所有传出$.post()请求的json数据?我尝试使用标题,但Laravel似乎没有认出它们 -

var csrf_token = $('meta[name="csrf-token"]').attr('content');
alert(csrf_token);
$.ajaxPrefilter(function(options, originalOptions, jqXHR){
    if (options['type'].toLowerCase() === "post") {
        jqXHR.setRequestHeader('X-CSRFToken', csrf_token);
    }
});
Run Code Online (Sandbox Code Playgroud)

ajax jquery jquery-post laravel laravel-5

25
推荐指数
4
解决办法
6万
查看次数

如何在Rails中失败Ajax请求?

当用户单击特定项时,我使用jQuery的post方法更新数据库中的内容:

$.post("/posts/" + post_id + "/update_something", 
       { some_param: some_value }, 
       success_handler);
Run Code Online (Sandbox Code Playgroud)

这里update_something看起来是这样的:

def update_something
  post = Post.find(params[:id])
  post.update_attributes(:some_field => params[:some_param])
  render :nothing => true
end
Run Code Online (Sandbox Code Playgroud)

问题是如果update_attributes失败,请求仍然成功并success_handler执行.

如果update_attributes失败,我怎么能导致请求失败,以至于success_handler不会被执行?

ajax jquery ruby-on-rails jquery-post ruby-on-rails-3

12
推荐指数
2
解决办法
1万
查看次数

jquery.post()从MVC 4 WebAPI返回200 OK,但是命中了错误处理程序

我有一个奇怪的情况,我的jquery.post返回代码#200(OK),但错误处理程序被命中.

这是我的MVC WebAPI服务器端代码(它所做的只是返回代码#200 OK):

[HttpPost]
public HttpResponseMessage Post(T input)
{
    //_handler.Create(input);

    return Request.CreateResponse(HttpStatusCode.OK);
}
Run Code Online (Sandbox Code Playgroud)

这是我的客户端脚本

ServerAccess.prototype.Save = function (m) {

            $.post("http://localhost:55482/M/", m)
            .success(
                function (o) {
                    alert("success");
                })
            .error(
                function (xhr, textStatus, errorThrown) {
                    if (typeof console == 'object' && typeof console.log == 'function') {
                        console.log(xhr);
                        console.log(textStatus);
                        console.log(errorThrown);
                    }
                }
            );
        };
Run Code Online (Sandbox Code Playgroud)

Firebug中的控制台输出是:

POST http://localhost:55482/M/ 200 OK 894ms


响应标题

内容长度6

Content-Type application/json; 字符集= utf-8的

Date Sun,28 Oct 2012 18:55:17 GMT

服务器Microsoft-HTTPAPI/2.0


请求标题

接受 /

Accept-Encoding gzip,deflate

Accept-Language nb-no,nb; q …

jquery cross-domain jquery-post asp.net-web-api

9
推荐指数
1
解决办法
4309
查看次数

jQuery.post并不总是发送表单数据

我正在使用jQuery Post函数,例如:

var fooVar = true;
var barVar = 1;
var bazVar = "baz";

$.post("url",
   {
        foo: fooVar,
        bar: barVar,
        baz: bazVar
   },
   function(){
     alert("success");
   }
);
Run Code Online (Sandbox Code Playgroud)

在我的日志中,我看到一个间歇性的问题,即"url"没有任何表单参数的请求,我只有一个函数调用它.

是否有一种情况可以触发POST请求,而不发送jQuery Post中指定的表单参数?


我希望看到:

富=真巴= 1&巴兹=巴兹

但是根本没有表格参数:


更新:这个问题似乎主要是在Internet Explorer浏览器(IE7-IE11)上查看统计数据,但它不是IE独有的(Chrome,Firefox也有问题).

javascript jquery post http-post jquery-post

9
推荐指数
1
解决办法
952
查看次数

在使用jQuery和JSON时,如何让textarea保留换行符?

我有一个textarea用户输入注释和一个按钮提交使用jQuery .post()和JSON:

$('#submit').click(function () {
    var comment = {};
    comment.Author = $("#author").val();
    comment.Email = $("#email").val();
    comment.WebSite = $("#url").val();
    comment.Body = $("#comment").val(); // textarea

    $.post('/ajax/comments', comment, parseComment, 'json');
Run Code Online (Sandbox Code Playgroud)

$("#comment").val()似乎没有保留换行符(输入正在丢失换行符).我如何让它工作?

jquery textarea line-breaks jquery-post

7
推荐指数
1
解决办法
1万
查看次数

如何在Jquery POST中获取HTTP错误响应代码

我有一个用于向服务器发送请求的包装函数,如果服务器返回401的代码,我需要做一些特定的事情,我不知道如何获取这些数据

 $.mobile.showPageLoadingMsg();    
$.post(apiUrl+method,p,function(d) {

    $.mobile.hidePageLoadingMsg();  
    console.log(d.success);
    console.log(d.message);

    if(d.success == true){
        window[callback](d.data);
    }
    else{
        if(d.message != null){
            alert(d.message);
        }  
    }
},'json')
.error(function() {
    //need to check for 401 status here to do something
    $.mobile.hidePageLoadingMsg();  
    alert("error");
});
Run Code Online (Sandbox Code Playgroud)

如果我的服务器端代码抛出一个401异常,jquery .error函数选择它只是因为它不是200 OK但我需要检查它是否是401代码.

javascript jquery jquery-post jquery-mobile

7
推荐指数
1
解决办法
5682
查看次数

$ .post jQuery更快或更慢取决于浏览器?

我正在尝试提高我的jQuery性能,我注意到它在Chrome中的运行速度比其他浏览器快.当它只是对PHP文件的AJAX调用时,它是否有意义?

为了测试它,我在一个click事件上这样做:

var startTime = new Date();

$.post("http://"+ document.domain + "action.json",  { data:  data}, 
    function(dat){

        console.log('ending:  ', (new Date() - startTime) / 1000);
    }
});
Run Code Online (Sandbox Code Playgroud)

以秒为单位的结果是:

  • Chrome 25: 0.148
  • Firefox 19.0.2: 0.212
  • Internet Explorer 9: 0.272
  • 歌剧12.14: 0.219

可以在每个浏览器上访问控制台的开发工具是否会干扰此结果?

谢谢.

javascript browser performance jquery jquery-post

7
推荐指数
1
解决办法
227
查看次数

如何使用Javascript在$ .post()方法中传递授权头?

我想在将数据发送到服务器时传递Authorization标头.我试过了

$.ajax({
   url : <ServiceURL>,
   data : JSON.stringify(JSonData),
   type : 'POST',
   contentType : "text/html",
   dataType : 'json',
   success : function(Result) {
   },
   beforeSend: function (xhr) {
      xhr.setRequestHeader('Authorization', <Authorization Header Value>);
   },
   error: function (RcvData, error) {
      console.log(RcvData);
   }
});
Run Code Online (Sandbox Code Playgroud)

但REST服务返回错误(错误代码:500).添加授权之前,同样的服务与$ .post()一起正常工作.谁能告诉我"如何在$ .post()中传递授权标题?"

javascript rest jquery jquery-post

5
推荐指数
1
解决办法
1万
查看次数