0

希望这是有道理的......但我正在尝试编写一些初始 ajax 调用到一个测试 php 页面,并且我在控制台中收到一个错误,内容如下:

Uncaught Error: Syntax error, unrecognized expression: {"projectId":"John","Project":"Some Project Name"} jquery-1.9.min.js:4
st.error jquery-1.9.min.js:4
ft jquery-1.9.min.js:4
wt jquery-1.9.min.js:4
st jquery-1.9.min.js:4
b.fn.extend.find jquery-1.9.min.js:4
b.fn.b.init jquery-1.9.min.js:3
b jquery-1.9.min.js:3
(anonymous function) download.js:27
c jquery-1.9.min.js:3
p.add jquery-1.9.min.js:3
(anonymous function) download.js:25
b.event.dispatch jquery-1.9.min.js:3
v.handle jquery-1.9.min.js:3

这是我的 jquery ajax 调用:

$.get('test.php', {object_ID: 'kjiyu-drtfg-hjuyt-hiytr'})
.done(function(data) {
    console.log(data);
    $(data).each(function(index, element) {
        $('#fileList').append('<option value="' + element.projectId + '">' + element.Project + '</option>');
    });
});

这是我的 test.php 页面:

<?php 
  echo json_encode(array(
              array("projectId"=>"John","Project"=>"Some Project Name"),
              array("projectId"=>"John2","Project"=>"Some Project Name 2")
            ));
?>

任何建议将不胜感激。最后,这将连接到从数据库中查找值的实际页面......我只想让我的第一轮进行。

编辑

我提出了建议的数组更改,但现在出现此错误:

XMLHttpRequest cannot load file:///C:/Users/v-sthaff/Documents/School/Spring%202013/BIT%20286/Website/test.php?object_ID=kjiyu-drtfg-hjuyt-hiytr. Origin null is not allowed by Access-Control-Allow-Origin. jquery-1.9.min.js:5
send jquery-1.9.min.js:5
b.extend.ajax jquery-1.9.min.js:5
b.(anonymous function) jquery-1.9.min.js:5
(anonymous function) download.js:24
b.event.dispatch jquery-1.9.min.js:3
v.handle

XMLHttpRequest cannot load file:///C:/Users/v-sthaff/Documents/School/Spring%202013/BIT%20286/Website/test.php?projectId=abcde-abcde-abcde-abcde. Origin null is not allowed by Access-Control-Allow-Origin. jquery-1.9.min.js:5
send jquery-1.9.min.js:5
b.extend.ajax jquery-1.9.min.js:5
b.(anonymous function) jquery-1.9.min.js:5
(anonymous function) download.js:43
b.event.dispatch jquery-1.9.min.js:3
v.handle

编辑 - 解决方案: 将文件移动到我的服务器似乎解决了这个问题以及这个更新的 jquery:

$.getJSON('test.php', {object_ID: 'kjiyu-drtfg-hjuyt-hiytr'})
.done(function(data) {
    console.log(data);
    $(data).each(function(index, element) {
        alert(element.projectId + ' ' + element.Project);
        $('#fileList').append('<option value="' + element.projectId + '">' + element.Project + '</option>');
    });
});
4

1 回答 1

0

您没有返回“数据”数组,

试试这个,

$.get('test.php', {object_ID: 'kjiyu-drtfg-hjuyt-hiytr'})
  .done(function(data) {
    console.log(data);
    $('#fileList').append('<option value="' + data.projectId + '">' + data.Project + '</option>');
});

如果您的测试数据看起来像,.each 会循环,

<?php 
  echo json_encode(array(
              array("projectId"=>"John","Project"=>"Some Project Name"),
              array("projectId"=>"John2","Project"=>"Some Project Name 2")
            ); 
?>

在这种情况下,您将在每个循环内使用 element.projectId 。

于 2013-04-26T02:36:36.627 回答