Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我的代码是同一来源政策的受害者吗?_Php_Javascript_Jquery_Json_Same Origin Policy - Fatal编程技术网

Php 我的代码是同一来源政策的受害者吗?

Php 我的代码是同一来源政策的受害者吗?,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进行解析,它可以很好地将其放在这里。但是如

这是我的密码。你必须仔细看看它是否受到这种形状的“原产地相同政策”的影响。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=jsonData


需要更好的格式,也许还有更好的措辞。我仍然不知道你到底想做什么,也不知道哪里不对。我不知道这个论坛是什么?它是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>