jsp post跨域提交 json

frank_kkkkking 2012-07-26 10:02:28
小弟新手

现有一个外部网站,我想调用其功能。具体来说例如我发送一个搜索请求,我想直接显示该网站的结果页面。

但问题是改网站接受的是json类型,小弟知识太少,只知道用jquery提交json。但jquery又有不能跨域的问题?

另外一个问题是我现在想用$.post()函数,我不知道函数执行后后是不是能直接跳到url的网页,还是只能返回值?

问题可能很幼稚,请见谅。。。
...全文
528 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
http://XXX.com/Portal/ajaxpro/SearchResults,App_Web_qcc5jf8e.ashx 就是这个啊。。。.net自动生成的路径,没问题的
frank_kkkkking 2012-07-27
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 的回复:]

http://XXX.com/Portal/ajaxpro/SearchResults,App_Web_qcc5jf8e.ashx 就是这个啊。。。.net自动生成的路径,没问题的
[/Quote]

怎么会有逗号呢,前面像一个servlet后面好像是一个网页上的动画。我在浏览器之间输入这个地址是什么都打不开的?
  • 打赏
  • 举报
回复
自己做代理,用代理页提交数据,ajax请求代理页面
htynkn 2012-07-26
  • 打赏
  • 举报
回复
用jquery的话直接$.getJSON就行了。

最好还是用$.getScript
frank_kkkkking 2012-07-26
  • 打赏
  • 举报
回复
感谢showbo我对问题有了一些思路

但是现在我要处理提交的请求比较复杂,目标url也很奇怪http://XXX.com/Portal/ajaxpro/SearchResults,App_Web_qcc5jf8e.ashx。这样的话我目标url应该是什么呢?

还有就是这个目标网站需要登录,我要处理的部分在登录后。对于登录处理有没有什么好方法?

谢谢谢谢谢谢。。。。。。。
  • 打赏
  • 举报
回复
java不太清楚,不过应该不是你标出来的那句,你标出来那句应该是发送给远程服务器的

输出内容的应该是
BufferedReader reader = new BufferedReader(
new InputStreamReader(connection.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
out.println(line);
}
reader.close();

你可以先组合起来,然后再处理
          BufferedReader reader = new BufferedReader(
new InputStreamReader(connection.getInputStream()));
String line,s="";
while ((line = reader.readLine()) != null) {
s+=line;
}
reader.close();
/////对内容s的处理代码
out.println(s);//////

frank_kkkkking 2012-07-26
  • 打赏
  • 举报
回复
os.writeChars(s);
s里面是要发送的请求吗?
frank_kkkkking 2012-07-26
  • 打赏
  • 举报
回复
我找了个代理的例子,能不能请大侠帮我看看

<%
String url = null;
StringBuffer params = new StringBuffer();
Enumeration enu = request.getParameterNames();
int total = 0;
while (enu.hasMoreElements()) {
String paramName = (String) enu.nextElement();
if (paramName.equals("url")) {
url = request.getParameter(paramName);
} else {
if (total == 0) {
params.append(paramName)
.append("=")
.append(URLEncoder.encode(
request.getParameter(paramName),
"UTF-8"));
} else {
params.append("&")
.append(paramName)
.append("=")
.append(URLEncoder.encode(
request.getParameter(paramName),
"UTF-8"));
}
++total;
}
}
String para = params.toString();
//out.println(url);
if (url != null) {

URL connect = new URL(url.toString());
HttpURLConnection connection = (HttpURLConnection)connect.openConnection();
connection.setDoOutput(true);
connection.setDoInput(true);
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-type",
"application/x-www-form-urlencoded");
connection.connect();
DataOutputStream os = new DataOutputStream(connection.getOutputStream());
os.writeChars(s);
os.flush();
os.close();

BufferedReader reader = new BufferedReader(
new InputStreamReader(connection.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
out.println(line);
}
reader.close();
}
%>

红色的部分是要发送的请求吗?
  • 打赏
  • 举报
回复
如果外部服务器接受你发送的参数的话可以使用jsonp跨域,如果不接受,只能做代理

做代理就是你自己建立一个动态页面,如xxxx.aspx什么的,这个动态页面使用服务器端的httprequest等对象下载跨域页面的内容后输出,如果你要修改的话代理页面进行处理后再输出

然后ajax请求xxxx.aspx这个页面。
frank_kkkkking 2012-07-26
  • 打赏
  • 举报
回复
另外补充下请求时post类型的,是不是$.getJSON之类的就不能用了?
frank_kkkkking 2012-07-26
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

自己做代理,用代理页提交数据,ajax请求代理页面
[/Quote]

楼上的大侠可不可也具体解释下。
这个做代理页是不是要建在我请求的这个外部网站里面,我现在不能改外部网站的东西。
frank_kkkkking 2012-07-26
  • 打赏
  • 举报
回复
楼上的大侠可不可也具体解释下。
这个做代理页是不是要建在我请求的这个外部网站里面,我现在不能改外部网站的东西。
内容概要:本文档提供了关于“微型车间生产线的设计与生产数据采集试验研究”的毕业设计复现代码,涵盖从论文结构生成、机械结构设计、PLC控制系统设计、生产数据采集与分析系统、有限元分析、进度管理、文献管理和论文排版系统的完整实现。通过Python代码和API调用,详细展示了各个模块的功能实现和相互协作。例如,利用SolidWorks API设计机械结构,通过PLC控制系统模拟生产流程,使用数据分析工具进行生产数据的采集和异常检测,以及利用进度管理系统规划项目时间表。 适合人群:具有机械工程、自动化控制或计算机编程基础的学生或研究人员,尤其是从事智能制造领域相关工作的人员。 使用场景及目标:①帮助学生或研究人员快速搭建和理解微型车间生产线的设计与实现;②提供完整的代码框架,便于修改和扩展以适应不同的应用场景;③作为教学或科研项目的参考资料,用于学习和研究智能制造技术。 阅读建议:此资源不仅包含详细的代码实现,还涉及多个学科领域的知识,如机械设计、电气控制、数据分析等。因此,在学习过程中,建议读者结合实际操作,逐步理解每个模块的功能和原理,并尝试调整参数以观察不同设置下的系统表现。同时,可以参考提供的文献资料,深入研究相关理论和技术背景。

52,790

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧