Php 我的代码是同一来源政策的受害者吗?
这是我的密码。你必须仔细看看它是否受到这种形状的“原产地相同政策”的影响。HTML的域是http://127.0.0.1/jqload.html &php文件http://127.0.0.1/conn_sql.php. 这是json格式:[{options:smart_exp},{options:user_int},{options:blahblah}] 实际上,我想将在HTYML中接收到的json数据附加到用户输入中&我为此感到痛苦。如果我使用eval进行解析,它可以很好地将其放在这里。但是如果我使用JSON.parse进行解析,那么整个代码都会停止工作&发出这个错误消息“重要:在部署之前从json2.js中删除这一行”。我把我的代码放在stackoverflow论坛上回答其他一些问题&有人告诉我,我的代码受到“同源策略”的影响,这导致在附加JSON数据时出现问题。那么,您能看到我的代码是否受到此策略的影响吗?虽然我怀疑它会受到该策略的影响,因为我了解到它限制文件是否驻留在不同的域上,但在这里,两个文件彼此相邻 代码: 您的思路是正确的,但是这里:$.eachjsonData,函数i,j{…}您实际上是在jsonData字符串的每个字符中循环,而不是在json对象中循环。只需在$.each内将jsonData更改为json,无论您使用的是eval还是json.parse,它都可以正常工作,但我建议使用后者 编辑:因为您使用的是jQuery.getJSON,所以不需要使用eval或JSON.parse-jQuery为您做这件事。因此,在回调函数中,只需设置json=jsonDataPhp 我的代码是同一来源政策的受害者吗?,php,javascript,jquery,json,same-origin-policy,Php,Javascript,Jquery,Json,Same Origin Policy,这是我的密码。你必须仔细看看它是否受到这种形状的“原产地相同政策”的影响。HTML的域是http://127.0.0.1/jqload.html &php文件http://127.0.0.1/conn_sql.php. 这是json格式:[{options:smart_exp},{options:user_int},{options:blahblah}] 实际上,我想将在HTYML中接收到的json数据附加到用户输入中&我为此感到痛苦。如果我使用eval进行解析,它可以很好地将其放在这里。但是如
需要更好的格式,也许还有更好的措辞。我仍然不知道你到底想做什么,也不知道哪里不对。我不知道这个论坛是什么?它是StackOverflow吗?实际上,最初我想把从php文件中收到的json数据附加到HTML表单中,并使用用户输入。我把我的代码放在stackoverflow论坛上回答其他一些问题&有人告诉我,我的代码受到“同源策略”的影响,这导致了在处理json数据时出现问题。因此,请您看看我的代码是否受到此策略的影响。如果是这样,我怎样才能从政策问题中恢复过来。虽然我怀疑我的代码是否受到该策略的影响,因为我的两个文件都位于同一个域中。您会遇到什么错误?您是否在控制台Ctr-J中看到任何消息?您确定您获取的JSON字符串包含符合的有效JSON吗?下一次,请不要像你一样使用“缩写”,只使用你。此外,您应该编辑原始问题,而不是打开新问题。但现在就不谈了,重新格式化问题和缩进代码是相当麻烦的。作为记录,如果我使用eval来解析,那么现在在这个线程中编写的代码就可以工作了。但是如果我使用alert json.option[0],即查看是否可以附加它,它将不会输出任何内容如果我使用JSON.parse进行解析,那么所有原始代码中的第一个都会停止工作,即使用JSON填充select,这会引发错误重要提示:在部署之前从json2.js中删除这一行。是的,我使用jsonlint.com进行检查&它是有效的。对不起,实际上我用它来节省空间。实际上,我在OP中也引用了这条消息,我不确定我是否也可以更改消息标题。从json2.js中删除这一行的消息本身就很清楚:在使用json2.js之前删除这一行。你不是在热链接那个图书馆吧?thanX和u&对不起,我可怜的话把你弄糊涂了。实际上这部分不是我的问题,它工作正常。我在这里声明/使用全局var json,在这里解析后,我可以在ADDLISITEM脚本中使用它。我在这里将json解析为javascript,即。我需要在ADDLISTITEMS脚本中使用js,我重写了我的原始帖子。请看一下。我在将从php收到的json数据(即“jsonData”)附加到用户输入时遇到了实际问题
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html><head></head>
<body>
<form name="index">
<p><input type = "text" id = "txt" name = "txt"></input>
<p><input type = "button" id = "send" name = "send" value = "send" onClick=
"ADDLISTITEM"></input>
<p><select name="user_spec" id="user_spec" />
</form>
<script>
function ADDLISTITEM()
{
alert (json.length); // working
alert json.options[1]; // do not show any value, message just for testing
json.options[json.length+1] = 'newOption'; //not working; HELP HERE
jsonString = JSON.stringify(json);//working fine for current data
alert(jsonString);
//here I have to implement send this stringify(json) back to server,HELP
//HERE
}
</script>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
var json;
$(document).ready(function() {
jQuery .getJSON("http://127.0.0.1/conn_mysql.php", function (jsonData) {
json = jsonData;
$.each(jsonData, function (i, j) {
document.index.user_spec.options[i] = new Option(j.options);
});
});
});
</script>
</body>
</html>
<script>
var json;
$(document).ready(function() {
jQuery .getJSON("http://127.0.0.1/conn_mysql.php", function (jsonData) {
json = jsonData;
$.each(json, function (i, j) {
document.index.user_spec.options[i] = new Option(j.options);
});
});
});
</script>