gpt4 book ai didi

jQuery ajax GET 返回 405 方法不允许

转载 作者:行者123 更新时间:2023-12-01 04:25:57 24 4
gpt4 key购买 nike

我正在尝试访问需要身份验证的 API。这是我正在使用的代码,但我不断收到 405 Method Not allowed 错误。有什么想法吗? (我的用户名和密码是正确的)

function basic_auth(user, pass){
var tok = user + ':' + pass;
var hash = $.base64.encode(tok);
return "Basic " + hash;
}
var auth = basic_auth('username','password');
var releaseName1 = "11.6.3";
var releaseName2 = "11.6.3 Confirmed";
$.ajax({
type: "GET",
url: "https://www10.v1host.com/Company/rest-1.v1/Data/Story?sel=Description,Number,Name,Timebox.Name,Parent,AssetState&where=Custom_Release2.Name='"+releaseName1+"','"+releaseName2+"';AssetState='64'",
beforeSend: function(xhr){
xhr.setRequestHeader('Authorization', auth);
},
dataType: "xml",
async: false,
success: parseXml
});
function parseXml(xml){
$(xml).find("item");
}

最佳答案

您无法跨域进行 javascript/Ajax 调用(没有一些严重的拼凑)。我们过去为此所做的是创建一个本地 jsp 代理,我们使用 javascript 调用该代理,但它只是到远程 URL 的传递。

这里是一些示例 JSP 代码,它与我用来访问返回 JSON 的 SOLR 实例的代码很接近。

final String ENCODING = "UTF-8"; // this is the default unless specified otherwise (in server.xml for Tomcat)
// see http://tomcat.apache.org/tomcat-6.0-doc/config/http.html#Common_Attributes and
// http://wiki.apache.org/tomcat/FAQ/CharacterEncoding#Q2
final String URI_ENCODING = "ISO-8859-1";

HashMap<String, String> defaultSettings = new HashMap<String, String>() {
{
put("wt", "json");
put("rows", "10");
put("start", "0");
}
};

BufferedReader searchResponse = null;
OutputStreamWriter forwardedSearchRequest = null;

// TODO: are there any headers that we need to pass on?
// simply pass on the request to the search server and return any results
try {
URL searchURL = new URL("http://yourdestinationurlhere.com");
HttpURLConnection conn = (HttpURLConnection) searchURL.openConnection();

// read the request data and send it as POST data (unchanged)
conn.setDoOutput(true);
forwardedSearchRequest = new OutputStreamWriter(conn.getOutputStream());

// at least for Tomcat 6.0, the default is really iso-8859-1, although it is reported as UTF-8
// so, we will explicitly set it to URI_ENCODING in both places
request.setCharacterEncoding(URI_ENCODING);

String query = (String) request.getParameter("q");
if ((query != null) && (! "".equals(query.trim()))) {
query = URLEncoder.encode(query, request.getCharacterEncoding()); // we must use the same setting as the container for URI-encoding
forwardedSearchRequest.write("&q=");
forwardedSearchRequest.write(query);
} else {
// empty queries may return all results, so let's circumvent that
forwardedSearchRequest.write("&q=help");
}

for(String key:defaultSettings.keySet()) {
String resultType = (String) request.getParameter(key);
if ((resultType == null) || "".equals(resultType.trim())) resultType = defaultSettings.get(key);
forwardedSearchRequest.write("&"+key+"=");
forwardedSearchRequest.write(resultType);
}

forwardedSearchRequest.flush();

// read and forward the response
// reset anything that may have been sent so far
out.clearBuffer();

// do this only if we have a 200 response code
if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {
// the web server may be running as windows-1252, so let's ensure we have the right CS
searchResponse = new BufferedReader(new InputStreamReader(conn.getInputStream(), ENCODING));

String contentType = conn.getHeaderField("Content-Type");
if ((contentType != null) && (! "".equals(contentType))) response.setHeader("Content-Type", contentType);

String buffer;
while ((buffer = searchResponse.readLine()) != null) out.println(buffer);
} else {
// dish out a mock-Solr-JSON response that includes a status and an error
response.setHeader("Content-Type", "application/json");
out.println("{ responseHeader: {status: -1, responseCode: " + conn.getResponseCode() +
", responseMessage: \"" + conn.getResponseMessage() + "\" } }");
}
} catch (Exception e) {
throw new ServletException("Exception - " + e.getClass().getName(), e);
} finally {
if (forwardedSearchRequest != null) forwardedSearchRequest.close();
if (searchResponse != null) searchResponse.close();
}

关于jQuery ajax GET 返回 405 方法不允许,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6523162/

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