Java-ajax跨站空响应字符串

标签 java jquery ajax cross-site

我正在做一个跨站点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/

相关文章:

jquery - 不明白如何用jQuery css控制css元素

jquery - 通过切换动画问题

javascript - 当通过 ajax 加载表单时,jQuery 的 live 和 livequery 对我不起作用

java - Android/OpenGLES : Pulling x and y coords through my class hierarchy?

java - 数组中的长度字段

javascript - 带有切换日记条目的 HTML 日记 - Jquery 不工作

javascript - 如果用户一直向下滚动,则按间隔向下滚动

java - 如何阻止鼠标退出窗口?

java - 我们如何确定文本文件中的行数?

javascript - 复选框更改事件触发两次