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 和调试工具,所以我可以看到返回的响应周围有额外的引号。