【发布时间】:2015-05-21 19:30:44
【问题描述】:
我有一个数组 $tag,我使用它来打印:
foreach($tags as $t) {
echo $t['token'] . "/" . $t['tag'] . " ";
}
如何将此 $tag 传递给 Java servlet,以便在 Java 程序中我可以像在 PHP 脚本中一样使用 foreach 和 $t['token'] 和 $t['tag'] 来使用它?
我假设这必须使用 POST 方法来完成,是否也可以使用 GET 方法?
更新
得到一个 json_array:
$js_array = json_encode($tags);
echo "var javascript_array = ". $js_array . ";\n";
返回:
var javascript_array = [{"token":"test","tag":"NN"},{"token":"1","tag":"NN"}];
我正在尝试使用以下方法将其传递给 servlet:
<script src="http://code.jquery.com/jquery-1.10.1.min.js">
$( document ).ready(function() {
alert('ok');
$.ajax({
url : "http://localhost:8080/first/SPARQL",
type: "POST",
data: $js_array,
dataType: "json",
async: false,
success: function (){
alert( "succes");},
error: function(){
alert("false");
}
});
});
</script>
但是,它既不返回“succes”也不返回“false”。它显示“确定”警报。
附言我正在通过 Eclipse 和 Tomcat 8 运行 java servlet。php 文件位于我的 Wamp localhost 上。我可以在浏览器中访问网址。
另外,似乎我不能在我用 PHP 制作的 javascript 中使用 $js_array,它说它没有设置。
更新:在 chrome 控制台中显示:
XMLHttpRequest cannot load http://localhost:8080/first/SPARQL.
No 'Access-Control-Allow-Origin' header is present on the requested resource.
Origin 'http://localhost' is therefore not allowed access.
jquery-1.10.1.min.js:6 x.ajaxTransport.sendjquery-1.10.1.min.js:6 x.extend.ajaxresultaat.php?nlquery=Dit+is+een+eerste+tekst:20
(anonymous function)jquery-1.10.1.min.js:4
x.Callbacks.cjquery-1.10.1.min.js:4
x.Callbacks.p.fireWithjquery-1.10.1.min.js:4 x.extend.readyjquery-1.10.1.min.js:4 q
在 servlet 中添加:response.addHeader("Access-Control-Allow-Origin", "*");。
错误现在消失了,但它仍然响应错误,因为我无法访问 javascript 中的 PHP $js_array?说 $js_array 没有设置。
【问题讨论】:
-
你试过
success:function(data){ console.log(data) }它会告诉你是否在返回中得到任何数据 -
$js_array 的值是多少??
标签: java javascript php jquery servlets