jquery到节点:POST被视为GET

时间:2013-12-26 15:30:11

标签: javascript android node.js jquery jquery-mobile

我正在使用Phonegap创建一个Android移动应用程序,所以我决定使用jQuery mobile。服务器端将由node.js应用程序处理。

在客户端,我让javascript发送POST请求:

function validate() {
            //alert($('#username').val());
            var uname = $('#username').val() ;
            var pword = $('#password').val() ;
            $.ajax({
                type : "POST",
                dataType: "jsonp",
                jsonpCallback: "responding",
                url : "http://localhost:8888/authenticate",
                data :  { username: uname , password : pword },
                success : function(data) {
                    alert(data);
                },
                error : function(jqXHR, textStatus, errorThrown) {
                    alert("Error, status = " + textStatus + ", " + "error thrown: " + errorThrown);
                }
            });
        }

在服务器端,节点使用

获取它
function authenticate(request, response) {
console.log("Request handler 'upload' was called.");
console.log(request);
response.writeHead(200, {
    "Content-Type" : "text/plain"
});
response.write('responding(\'{"message": "Dummy Reply!"}\')');
response.end();

}

当我看到console.log(请求)时,你可以看到,在控制台中,还有很多东西,我得到了这个......

  

url:'/ authenticate?callback = respond& username = foo& password = bar& _ = 1388071403212',     方法:'GET',

当POST方法到达服务器时,它是如何成为GET方法的?

您也可以告诉我如何在节点侧的POST请求中获取参数。

1 个答案:

答案 0 :(得分:1)

您无法POST JSONP次请求。

type : "POST",
dataType: "jsonp",

JSONP请求几乎总是GET(jQuery只是将一个<script>)标记添加到DOM中(对于同域请求可能存在一些异常)