使用jQuery $ .ajax Post方法将数据发送到服务器

时间:2011-10-26 08:18:03

标签: jquery post

我使用jQuery Ajax将数据发送到服务器。我将帖子类型设置为POST但数据总是使用GET方法发送。如何使用Post方法发送数据?

$.ajax({
        type: "POST",        
        dataType: 'jsonp',            
        url: 'http://do.convertapi.com/Web2Image/json/',
        data: {
            'CUrl':$('#txtUrl').val(),
            'OutputFormat':'png',
            'PageWidth':600,
            'ApiKey':apiKey
        },
        jsonp: "callback",
        success: function (data) {               
        if (data.Result)
        {                
            $('#imgSnapShot').attr('src','data:image/png;base64,'+data.File); 
            $('#dvStatus').text("Converted successfully!");
        }
        else {
            $('#dvStatus').text("Error: " + data.Error);
        }             
        },
        });

正如Graham Clark所说,jsonp Ajax请求总是发布为GET。如果我删除jsonp选项我得到另一个问题,跨域发布错误。我的问题有解决办法吗?

3 个答案:

答案 0 :(得分:1)

因为这是一个5岁的问题,但是如果有人发现它有用的话 最近,浏览器实现了一种称为跨源资源共享(CORS)的技术,该技术允许对不同域的Ajax请求。 所以必须使用cors而不是jsonp

答案 1 :(得分:0)

我相信jsonp总是与GET请求一起发送。如果您需要POST,请使用json。查看this question了解详情。

答案 2 :(得分:0)

您无法通过JSONP发送跨域请求 - 它不使用XMLHttpRequest。有关更多信息,请参见此处:

http://groups.google.com/group/jquery-dev/browse_thread/thread/e7eb4a23eef342fb?pli=1