javascript - 为什么我用POST方式被改成了get方式
ringa_lee
ringa_lee 2017-04-11 13:33:04
[JavaScript讨论组]

    function ajaxfen1(num,jsonr){
         var url1=globalServer+'/workorder/kcWorkorder/list/ajax?type=1&pageNo='
        var json1=jsonr
        $.ajax({
            type:"POST",
            url:url1+num,
            async:true,
            data:jsonr,
            dataType:'json',
            success:function(data){
                var pagedata=data
                var total=pagedata.totalRevenue
                
                var list=pagedata.list
                var html=''
                var pageers=Math.ceil(pagedata.count/pagedata.pageSize)
                $('.page-count21').html('共'+pagedata.count+'条')
                $('.app1').html('收入总计:'+total+'元')
                for (var i=0;i

大概代码是这样的。但是每次JQ都会默认帮我变成get方式。我想用post--

ringa_lee
ringa_lee

ringa_lee

全部回复(4)
ringa_lee

你是跨域请求了吗?

jQuery API中文文档上指出:在远程请求时(不在同一个域下),所有POST请求都将转为GET请求。因为将使用DOM的script标签来加载。

另外ajax函数写法在从jQuery 1.5.1开始版本之后就出现了新的ajax函数写法,建议使用新写法。

例如:

$.ajax({
  url: "http://fiddle.jshell.net/favicon.png",
  beforeSend: function ( xhr ) {
    xhr.overrideMimeType("text/plain; charset=x-user-defined");
  }
}).done(function ( data ) {
  if( console && console.log ) {
    console.log("Sample of data:", data.slice(0, 100));
  }
});

jqXHR.done(function(data, textStatus, jqXHR) {});
一个可供选择的 success 回调选项的构造函数,.done()方法取代了的过时的jqXHR.success()方法。

API详解:

jqXHR.fail(function(jqXHR, textStatus, errorThrown) {});

一种可供选择的 error 回调选项的构造函数,.fail()方法取代了的过时的.error()方法。请参阅deferred.fail()的实现细节。

jqXHR.always(function(data|jqXHR, textStatus, jqXHR|errorThrown) { });

一种可供选择的 complete 回调选项的构造函数,.always()方法取代了的过时的.complete()方法。

在响应一个成功的请求后,该函数的参数和.done()的参数是相同的:data, textStatus, 和 jqXHR 对象.对于失败的请求,参数和.fail()的参数是相同的:jqXHR 对象, textStatus, 和 errorThrown。请参阅deferred.always()的实现细节。

jqXHR.then(function(data, textStatus, jqXHR) {}, function(jqXHR, textStatus, errorThrown) {});

包含了 .done() 和 .fail()方法的功能,(从 jQuery 1.8 开始)允许底层被操纵。请参阅deferred.then()的实现细节。

推荐使用的注意事项: jqXHR.success(), jqXHR.error(), 和 jqXHR.complete()回调从 jQuery 1.8开始 被弃用。他们将最终被取消,您的代码应做好准备,使用jqXHR.done(), jqXHR.fail(), 和 jqXHR.always() 代替。

这些在jQuery API文档中都有说,建议如果使用jQuery框架比较多的话还是好好了解写jQuery新版本的概况。

迷茫

jsonp跨域的话。都是get吧

巴扎黑
type:"POST",

=>

metod : 'POST'
天蓬老师

看一下你的 jQuery 是哪个版本的, 1.9.0之后,type就已经被换成了method了(You should use type if you're using versions of jQuery prior to 1.9.0.)。去官网看文档

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号