Per*_*yCS 6 php ajax jquery json
我是jquery的新手,昨晚才刚开始阅读json. 我有一个工作的ajax调用,它将简单数据传递给php脚本,处理数据并返回单个值.效果很好.
我想要来回添加数组和非数组数据的传递,并在阅读成堆文章后说json是要走的路!!!! 但是......也就是json不安全,...戴上牙套,不要戴牙箍 - 使用json解码,不要使用它,确保顶部物品是一个物体,有人说把"d"放在顶部,有些使用序列化,有些则不使用它.我是否必须在数据周围放置curley括号?或者是Jquery.有些人说还添加了一个标题,指定了application/json或其他一些标题......其他人说它打破了IE7 ...有些人说要添加......
"dataType" : json
在ajax电话中.你知道为什么我现在感到困惑吗?
... ...在PHP中我还必须使用rawurldecode吗?在json解码之前,因为我的ajax urlencodes数据...它太混乱......
我不希望这是一个比现在更大的安全漏洞...我想要正确地做到和SPEC.如果有规格.
谢天谢地,大多数人都说...这是关于你如何使用它(jquery,JSON)等,这使它"安全".安全......我的意思是,使用得当.客户端没有任何东西是安全的.
我坚持的很简单我很确定但是在阅读超过9个小时后我找不到明确的答案.为什么不能使这些语言的人(Jquery)写一个例子说...现在我们已经包含了json支持,这是正确的方法!
是的,我在这个最重要的部分有点罗嗦,因为我之前已经提出过短期问题并且遭到了抨击和批评,并被指责没有研究或者没有"充分研究",当我从来没有在这里问过问题时至少5个多小时的激烈阅读,扫描网站等等.通常我只会在9个多小时后来到这里...
...但我发现的信息是破碎的,陈旧的,而且太多了,我想完美地做到这一点!:)我到目前为止找到的最好的网站是用于拉动闪烁图片,但它没有显示如何正确发送所以我离开那里很高兴找到文章...但不知道如何应用于我的情况. ..
请查看我的代码中的注释以获取我需要的提示,甚至更好 - 修复我的代码以便我可以来回发送这两个数据,并且在每种语言中都可以为tmp变量赋值,这样我就可以看到你的方式了从传递的数据中提取信息?谢谢...
JQUERY/JS(我的旧代码)(代码snippits)
//Here's some sample data... - HOW DO I SEND THIS AS JSON (please) back and forth?
var myarray = new Array();
myarray.push("One");
myarray.push("Two");
myarray.push("Three");
var someOtherData = "helpmeplease";
$.ajax({
url: "../../ajax/ajax.php",
type: 'POST',
data: ({
"testarray" : myarray,
"somemoredata" : someOtherData
}),
success: function(results) {
// what do I do with results? please alert the 2 passed variables back from php
// for example alert("Test:" . results[0] . results.someOtherData) or however you
// access the returned values...
Run Code Online (Sandbox Code Playgroud)
PHP从AJAX接收(我的旧测试代码)
$test1 = rawurldecode($_POST["somemoredata"]);
$test2 = rawurldecode($_POST["testarray"]);
$test3 = testarray[0]; // should be One
Run Code Online (Sandbox Code Playgroud)
PHP返回
// please send any data back to the Ajax call 1 array, 1 normal data please and alert
// the data please so I can see how it's pulled back out...
return $data; // 1 array, 1 normal variable please
Run Code Online (Sandbox Code Playgroud)
关于我的东西的更多信息......
我的网站是UTF-8编码的
我的数据集将低于4兆.最有可能在20万以下.
没有跨领域的东西发生
我有一个nonce,每页令牌认证系统,工作得很好
什么可以进入数据?什么吗?是否应该包含哪些符号或内容会破坏JSON代码或来回传递数据?
任何其他提示,建议,警告?
感谢您的时间.
不需要以JSON格式发送数据,这意味着无需包含其他库.您可以使用jQuery将数据作为数组发送,并在PHP脚本中将其作为数组读取.
例如:
从PHP返回单个var:
<script type="text/javascript">
$(window).load(function(){
var myarray = new Array();
myarray.push("One");
myarray.push("Two");
myarray.push("Three");
var someOtherData = "helpmeplease";
$.ajax({
url: "../../ajax/ajax.php",
type: 'POST',
data: ({
"testarray" : myarray,
"somemoredata" : someOtherData
}),
success: function(results) {
alert(results);
}
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
和你的脚本:
<?php
$testarray = $_POST['testarray'];
echo $testarray[0]; // prints One
$someOtherData = $_POST['someOtherData']; // prints helpmeplease
?>
Run Code Online (Sandbox Code Playgroud)将数据作为数组和其他单个变量返回给jQuery.
您dataType: "json"
以JSON的身份添加和返回数据:
<script type="text/javascript">
$(window).load(function(){
var myarray = new Array();
myarray.push("One");
myarray.push("Two");
myarray.push("Three");
var someOtherData = "helpmeplease";
$.ajax({
url: "../../ajax/ajax.php",
type: 'POST',
dataType: 'json',
data: ({
"testarray" : myarray,
"somemoredata" : someOtherData
}),
success: function(results) {
alert(results.somemoredata); // will alert 'helpmeplease'
alert(results.testarray[1]); // will alert 'Two'
}
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
和脚本:
<?php
// I used the same POST fields, but it can be any other data
$array = array();
$array = $_POST['somemoredata'];
$array = $_POST['testarray'];
echo json_encode($array);
?>
Run Code Online (Sandbox Code Playgroud) 归档时间: |
|
查看次数: |
692 次 |
最近记录: |