2013-07-03 62 views
0

客户端:REST API - 404没有找到DELETE方法

function deleteData() 
    { 
     var txtId = $("#txtId").val(); 
     jQuery.ajax({ 
      url: "http://localhost:8090/delete/"+txtId, 
      type: "DELETE", 
      success: function (data, textStatus, jqXHR) { 
       console.log(data); 
      } 
     }); 
    } 

服务器端:

var allowCrossDomain = function(req, res, next) 
    { 
    res.header('Access-Control-Allow-Origin', '*'); 
    res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE'); 
    res.header('Access-Control-Allow-Headers', 'Content-Type'); 
    next(); 
    } 

app.delete('/delete/:id', function (req, res) 
{ 
    var id = req.params.id; 
    userdbConnection.query("DELETE FROM USER WHERE user_id = '"+id+"'", function(err, rows, fields){}); 
    res.send("Deleted"+''+id); 
}); 

输入:

`txtId = 26` 

输出:

删除操作执行在DB中,我也得到了服务器的响应给客户。但我也有错误OPTIONS http://localhost:8090/delete/26 404 (Not Found)

这是什么意思?

+1

试试这个答案http://stackoverflow.com/questions/13218174/cors-put-not-found-with-jquery-ajax – user568109

+0

@ user568109谢谢 – Hulk1991

回答

1

此代码可以帮助我:

var allowCrossDomain = function(req, res, next) 
{ 
    res.header('Access-Control-Allow-Origin', '*'); 
    res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE'); 
    res.header('Access-Control-Allow-Headers', 'Content-Type'); 
    if(req.method.toLowerCase() === "options") 
     { 
     res.send(200); 
     } 
    else 
     { 
    next(); 
     } 
} 

Thanks for this question