jspにプロキシコードを書き込んで、自分のコンピュータからローカルに他のドメインにajaxを呼び出そうとしています。これが私のjQuery AJAXコードで、proxy.jspページを呼び出しています。302 jspを使用してURLの内容を取得しようとすると見つかりました。
<%@ page language="java" import="org.w3c.dom.*,javax.xml.parsers.DocumentBuilder,javax.xml.parsers.DocumentBuilderFactory,java.net.*,java.io.*" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%
final String login ="user";
final String password ="pass";
Authenticator.setDefault(new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication (login, password.toCharArray());
}
});
String a_Url = request.getParameter("url") ;
String l_Content = "" ;
if(a_Url!=null && a_Url.length()>0)
l_Content = GetContent(a_Url).toString() ;
out.println(l_Content);
%>
<%!
StringBuffer GetContent(String a_Url) throws Exception
{
URL l_URL = new URL(a_Url);
BufferedReader l_Reader = new BufferedReader(new InputStreamReader(l_URL.openStream()));
StringBuffer l_Result = new StringBuffer("") ;
String l_InputLine = null ;
while ((l_InputLine = l_Reader.readLine()) != null)
//System.out.println("Print3" +l_InputLine);
l_Result.append(l_InputLine);
l_Reader.close();
return(l_Result) ;
}
%>
そして、私は戻って、このproxy.jspファイルからの応答を取得すると、私はこのエラーを取得する: - - :
var search_agile_metadata = 'https://search.xyz.com/rest-services/services/ag/get?id=';
var on_show_info = function() {
var outOfDomainCall = search_agile_metadata + current_doc_info.id;//An XML document
request_meta_info = $.ajax({
url: "proxy.jsp?url=" + outOfDomainCall ,
type: 'GET',
success: on_get_metadata,
error: on_get_metadata_agile
});
};
var on_get_metadata = function(data, text_status, XMLHttpRequest) {
console.log(data);
}
どれでも私のproxy.jspファイルがある
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"><html><head><title>302 Found</title></head><body><h1>Found</h1><p>The document has moved <a href="HTTP://search.xyz.com/rest-services/se/agile/get?id=CD90">here</a>.</p></body></html>
そして、上記のjQuery AJAXコードのステータスコードをチェックすると200になります。つまり、これはproxy.jspページで何かが起きていることを意味します。なぜそれがURLの内容を得ることができないのですか?どんな提案も高く評価されます...
@kasdegaでやったの
コードスニペット、バック返信用のおかげで..私はこれらの行はHttpClientをのための基本認証で意味ないのかわからないです: 'client.getState() .setCredentials(新しいAuthScope( "www.verisign.com"、443、 "realm")、 新しいUsernamePasswordCredentials( "username"、 "password") ); 'www.verisign.comの代わりに書くべきもの私が443の代わりに書いたものは何であり、何が本当ですか、これで私を助けることができますか? – ferhan
HttpClient Apiは非常によく文書化されています。これらのドキュメントを読むことをお勧めします。新しいAuthScopeで何をしようとしているのかよく分かりません。あなたの場合、おそらく静的なAuthScope.ANYを使用することで逃げることができます。 – kasdega
@kasdega、返信いただきありがとうございます。しかし、まだ同じエラーが発生しています。その他の提案。 – ferhan