【问题标题】:Jquery Ajax Posting json to webserver (API)Jquery Ajax 将 json 发布到网络服务器(API)
【发布时间】:2014-03-07 08:45:48
【问题描述】:

我正在尝试使用 ajax 发布到服务器上的 json 文件 (API)。在舞台上我拖动两个 Kineticjs 形状,当我停止拖动形状时,我希望能够将新的 x 和 y 坐标保存到服务器上的 json 文件中。 问题是我不能这样写:

data: JSON.stringify({ 'x': '(this).getPosition().x', 'y': '(this).getPosition().y' })

我得到的错误是: 传入的变量不是数组或对象。 无效查询:update T_ZigbeeNodes set x=(, y=(, plan=( where ID=''
您的 SQL 语法有误;请查看与您的 MySQL 服务器版本相对应的手册以获取正确的语法靠近 'y=(, plan=( 其中 ID=''' 在第 1 行。

    var getIthData = $.ajax({

        type: 'POST',
        url: 'http://192.168.8.143/api/v11/plan/',
        dataType: 'json',
        data: JSON.stringify({ 'x': '(this).getPosition().x', 'y': '(this).getPosition().y' }),

        success: function(resultData) {

            alert("Post x coord and y coord and Plan, Complete!");
        }
    });
    getIthData.error(function() {

        alert("Something went wrong. Cant Post x coord and y coord and Plan");
    });

谁能告诉我如何解决这个问题?

【问题讨论】:

  • 不要将 (this).getPosition().x 放在引号中。与第二次调用 y 相同。
  • @aaronfrost 嗨,好的,我明白了。但我知道同样的错误...

标签: javascript jquery ajax json api


【解决方案1】:
'(this).getPosition().x' 

这会将字符串 (this).getPosition().x 添加到 json 中。要获取 x 和 y 值,请删除引号:

data: JSON.stringify({ 'x': (this).getPosition().x, 'y': (this).getPosition().y })

【讨论】:

  • 那么您的查询有问题。你能发布确切的错误和你正在使用的sql吗?您最初的错误 ... set x=(, y=(, plan=( where ID='' ... 是从 (this).getPosition().x 中获取第一个 ( 并将其作为 x 和 y 的值添加到查询中。
  • 好的,这里是服务器上的json文件:[{"e3014":{"name":"e3014","interval":15,"x":"10","y ":"10","plan":"1","added":"2013-06-26 19:40:27","type":"enddev"}},{"e3026":{"name" :"e3026","interval":15,"x":"23","y":"10","plan":"1","add":"2013-06-26 15:51:30 ","type":"enddev"}},{"R2500":{"name":"R2500","interval":1,"x":"0","y":"0","plan ":"0","add":"2013-11-28 14:03:20","type":null}},{"R2502":{"name":"R2502","interval":1 ,"x":"0","y":"0","plan":"0","add":"2013-11-28 14:19:20","type":null}}]
  • 在您的 PHP 端点中,您可以设置断点以查看您传递的 JSON 对象是否正确?如果 JSON 格式正确,则这是 PHP 或 SQL 问题,而不是 JavaScript 问题。
  • @aaronfrost Hmmmmmmm,我没有使用 PHP,我不知道 JSON 的格式是否正确......这就是我想知道的,如果 JSON 格式正确。
  • jsonlint.com 会告诉您您的 json 格式是否正确。把你的 json 粘贴进去,它会告诉你的。
【解决方案2】:

这是“Jquery Ajax Posting json to webserver (API)”的解决方案

var data = [];
var name = this.getName();
var obj = {};
var position = this.getPosition();
var x = ( position.x < 0 ) ? 0 : position.x;
var y = ( position.y < 0 ) ? 0 : position.y;

obj[name] = {

    'name': name,
    'x': position.x,
    'y': position.y,
    'plan': 1
};

data.push( obj );
data = JSON.stringify( data );

var getIthData = $.ajax({

    type: 'POST',
    url: 'http://192.168.8.143/api/v11/plan/',
    data: data

}).success( function( resultData)  {

    alert("Post name + x coord + y coord and Plan, Complete!");
}).error(function() {

    alert("Something went wrong. Cant Post name + x coord + y coord and Plan");
});

【讨论】:

    猜你喜欢
    • 2011-09-13
    • 1970-01-01
    • 2021-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多