Jquery ajax 调用 returns URL 并加载到框架中或 div
Jquery ajax call returns URL and load into frame or div
我有一个全静态的客户端网络应用 html 和 javascript,我使用 JQuery。我更像是一个 back-end/middle-ware 和 Spring 的人,所以我不太擅长前端的东西。
我有一个 RESTful API 从我的客户 UI 到我用 Spring 编写的中间件网络应用程序作为控制器。我可以成功调用它,并且有中间件业务逻辑,我可以在其中使用第三方 API 并且它 returns HTML。我 return 这个 HTML 给我的客户,我试图将它加载到 iframe 或 div 标签中。当然,我遇到了各种 javascript 错误和很多 CORS 问题。所以,如果这不是从另一个网站获取 HTML 并将其部署到我的页面上的可行选择,那么我愿意放手。
我在后端创建了另一个 RESTful API 现在只是 return 一个 URL 这个第三方 RESTful API.具体来说,我正在调用 Coinbase 的授权页面,但它很可能是任何其他第三方授权页面。我有他们推荐的完整 URL,我准备用它做点什么。
所以,我得到了一个像这样的URL(数据类型是'text'),我可以通过警报看到它:
https://www.coinbase.com/oauth/authorize?
response_type=code&client_id=MY_CLIENT_ID
&redirect_uri=MY_REDIRECT_URL
&state=SECURE_RANDOM
&scope=wallet:accounts:read
我想我会做一个重定向如下:
window.location.replace(response);
但是,我得到了一个 HTTP 404,因为我的系统正在将我的 UI 本地主机预挂到那个 url。所以,它看起来像:
http://localhost:8080/my_web_ui_app/https://www.coinbase.com/oauth/authorize?
response_type=code&client_id=MY_CLIENT_ID
&redirect_uri=MY_REDIRECT_URL
&state=SECURE_RANDOM
&scope=wallet:accounts:read
显然,这不会起作用,因为我收到 HTTP 404 错误。
还有什么我应该尝试的吗?就像我说的,我不是一个好人 UI,但我只需要一些可以正常工作的东西。
谢谢!
这是 Ajax 调用本身。
$.ajax({
url : 'http://localhost:8080/myapp-be/api/myrestapi/authorize',
headers : {'token' : token},
dataType: 'text',
cache: false,
success: function(response) {
console.log(response)
$(location).attr('href',response);
}
});
数据类型:'text' 是罪魁祸首。
URL 是响应,作为 'text',它在响应周围添加了另一层引号。
一旦我从 Ajax 调用中删除了 dataType,默认的 dataType 就起作用了,我不再得到带有额外引号的 URL。成功后,我能够进行简单的重定向并且有效。是一个简单的修复。
感谢上帝 Chrome 和调试工具,所以我可以看到返回的响应周围有额外的引号。
我有一个全静态的客户端网络应用 html 和 javascript,我使用 JQuery。我更像是一个 back-end/middle-ware 和 Spring 的人,所以我不太擅长前端的东西。
我有一个 RESTful API 从我的客户 UI 到我用 Spring 编写的中间件网络应用程序作为控制器。我可以成功调用它,并且有中间件业务逻辑,我可以在其中使用第三方 API 并且它 returns HTML。我 return 这个 HTML 给我的客户,我试图将它加载到 iframe 或 div 标签中。当然,我遇到了各种 javascript 错误和很多 CORS 问题。所以,如果这不是从另一个网站获取 HTML 并将其部署到我的页面上的可行选择,那么我愿意放手。
我在后端创建了另一个 RESTful API 现在只是 return 一个 URL 这个第三方 RESTful API.具体来说,我正在调用 Coinbase 的授权页面,但它很可能是任何其他第三方授权页面。我有他们推荐的完整 URL,我准备用它做点什么。
所以,我得到了一个像这样的URL(数据类型是'text'),我可以通过警报看到它:
https://www.coinbase.com/oauth/authorize?
response_type=code&client_id=MY_CLIENT_ID
&redirect_uri=MY_REDIRECT_URL
&state=SECURE_RANDOM
&scope=wallet:accounts:read
我想我会做一个重定向如下:
window.location.replace(response);
但是,我得到了一个 HTTP 404,因为我的系统正在将我的 UI 本地主机预挂到那个 url。所以,它看起来像:
http://localhost:8080/my_web_ui_app/https://www.coinbase.com/oauth/authorize?
response_type=code&client_id=MY_CLIENT_ID
&redirect_uri=MY_REDIRECT_URL
&state=SECURE_RANDOM
&scope=wallet:accounts:read
显然,这不会起作用,因为我收到 HTTP 404 错误。
还有什么我应该尝试的吗?就像我说的,我不是一个好人 UI,但我只需要一些可以正常工作的东西。
谢谢!
这是 Ajax 调用本身。
$.ajax({
url : 'http://localhost:8080/myapp-be/api/myrestapi/authorize',
headers : {'token' : token},
dataType: 'text',
cache: false,
success: function(response) {
console.log(response)
$(location).attr('href',response);
}
});
数据类型:'text' 是罪魁祸首。
URL 是响应,作为 'text',它在响应周围添加了另一层引号。
一旦我从 Ajax 调用中删除了 dataType,默认的 dataType 就起作用了,我不再得到带有额外引号的 URL。成功后,我能够进行简单的重定向并且有效。是一个简单的修复。
感谢上帝 Chrome 和调试工具,所以我可以看到返回的响应周围有额外的引号。