gpt4 book ai didi

Java-ajax跨站空响应字符串

转载 作者:行者123 更新时间:2023-12-01 03:50:09 25 4
gpt4 key购买 nike

我正在做一个跨站点ajax到java数据事务(不确定我的命名是否正确,所以请原谅我)。 Java文件中的部分代码:

BufferedReader input =
new BufferedReader(new InputStreamReader(connectionsocket.
getInputStream()));
DataOutputStream output =
new DataOutputStream(connectionsocket.getOutputStream());
...
output.writeChars("some random text");
output.close();

我还有带有一些 jQuery 的 index.php 文件:

$(document).ready(function() 
{
$("#send_data").click(function(){
$.ajax({
type: 'get',
dataType: 'text',
url: 'http://localhost:1024/'+$("#command").val(),
success: function(data) {console.log(data);},
error: function() { console.log("Error"); }
})
});
});

命令正确发送并在Java端正确接收。那么从java到ajax的请求也是200 OK。输出也正常工作。 (例如,如果我删除 output.close(),我确实在 firebug 中看到它正在等待输出关闭。)

唯一的问题是,无论我做什么,我都没有收到回复文本。它始终是一个空字符串:(

最佳答案

cross-site ajax to java data transaction

index.php

Java

暗示您违反了same origin policy 。您必须使用相同的host:port组合来检索网页(或至少是执行 AJAX 的代码的 javascript 版本)并发送 AJAX 请求。

也就是说,如果你的JS来自localhost:80并且您正在尝试将 AJAX 请求发送至 localhost:1024 ,您违反了安全策略。

有多种方法可以进行跨域 AJAX,例如 jsonp ,但是您真的需要它吗?我建议从 servlet 提供 jQuery 代码,或者完全消除 PHP,或者更好的是,用 Scala 或 Erlang 重写所有内容。 :)

关于Java-ajax跨站空响应字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9754847/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com