下午好, 我从Android应用程序发出请求时,从Nodejs后端收到了Cast错误。需要明确的是,我的应用发出的第一个请求运行良好,但是第二个请求导致投放错误。除此之外,无论我发出多少请求,使用Postman都不会出错。
后端代码Nodejs和Mongoose
app.post('/adsclicked/:id', function (req, res) {
Ad.findOne({_id : req.params.id}, function (err, data) {
if (err) console.log(err);
var new_clicked_count = data.clicked + 1; //Updating count
data.set({ clicked: new_clicked_count }); //Saving new count
data.save(function (err, updatedData) {
if (err) console.log(err);
res.send(updatedData); //Indicate new object
});
});
});
Android应用
public void AdVisitCount(Context context, String id){
Log.d("advisit id", id);
RequestQueue queue = Volley.newRequestQueue(context);
URL_FOR_ADVISITCOUNT = URL_FOR_ADVISITCOUNT + id;
StringRequest strReq = new StringRequest(Request.Method.POST,
URL_FOR_ADVISITCOUNT, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d(TAG, "advisitcount Response: " + response.toString());
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e(TAG, "Error: " + error.getMessage());
}
});
// Adding request to request queue
queue.add(strReq);
}
答案 0 :(得分:0)
检查nodejs中updateData的数据类型
console.log(typeof(updatedData));
查看它是对象还是字符串
答案 1 :(得分:0)
问题是每个请求都向Url添加“ id”。第二个是url + id + id,依此类推。...
删除URL = URL + id; 行,并在请求内添加查询参数id:
[...]。POST,URL + id,新的Response.Listener [...]