使用 AngularJS 发送 GET 请求时无法从 WebStorm IDE 执行“打开”无效 URL

Posted

技术标签:

【中文标题】使用 AngularJS 发送 GET 请求时无法从 WebStorm IDE 执行“打开”无效 URL【英文标题】:Failed to execute 'open' invalid URL from WebStorm IDE while sending GET request using AngularJS 【发布时间】:2017-07-03 23:59:32 【问题描述】:

我启用了 CORS 模块并在我的 nodeJS 服务器代码中设置了所需的选项。我能够将 GET 请求从我的浏览器发送到给定的 URL 并获得响应。但是,当我尝试使用来自 WebStorm IDE 内置服务器的以下 AngularJS 代码执行以下代码以发送 GET 请求时,我遇到了以下错误。

city name Delhi
error SyntaxError: Failed to execute 'open' on 'XMLHttpRequest': Invalid URL

代码如下。

mainApp.controller('dController', function($scope,$http) 
    this.ccaid = 
        city:'',
        circle:'',
        area:'',
    ;
    this.getCircle=function()
        console.log('city name ' + this.ccaid.city);
        $http(
            method: 'GET',
            crossDomain:true,
            url: 'xx.xxx.xx.xx:3000/fetchCityArea',
            params:city:this.ccaid.city
        ).then(function(success)
            console.log('response ' + success);
        ,function(error)
            console.log('error ' + error);
        );
    ;
);

URL 没有问题,但仍然无法发送 GET 请求。

如何解决?

【问题讨论】:

【参考方案1】:

您的网址是否包含方案?您的示例代码没有:

url: 'xx.xxx.xx.xx:3000/fetchCityArea',

这需要有一个方案部分——http://https://

url: 'https://xx.xxx.xx.xx:3000/fetchCityArea',

【讨论】:

当我尝试将获取参数作为查询字符串而不是使用 params 属性发送时,此问题已为我解决。正如你所提到的,我也将方案部分添加到了 URL。【参考方案2】:

除了sideshowbarker的回答——

网址应符合 WHATWG URL 标准。 有效 URL 格式的示例在这里 - https://url.spec.whatwg.org/#example-url-parsing

【讨论】:

【参考方案3】:

我遇到的问题是我的网址无效。

http://ip::8080/

有一个额外的冒号。 我可能不是唯一一个。

【讨论】:

以上是关于使用 AngularJS 发送 GET 请求时无法从 WebStorm IDE 执行“打开”无效 URL的主要内容,如果未能解决你的问题,请参考以下文章

如何在同一GET请求中呈现文件并将数据发送到页面

Angularjs `$http` 发送 POST 而不是 GET

AngularJS - 如何在所有请求上发送通用 URL 参数?

AngularJS 应用程序的 CORS GET 中未发送 HTTP 标头

CORS AngularJS 不使用 POST 或 DELETE 发送 Cookie/凭据,但 GET OK

无法向 python 本地服务器发送颤振 GET 请求