使用 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的主要内容,如果未能解决你的问题,请参考以下文章
Angularjs `$http` 发送 POST 而不是 GET
AngularJS - 如何在所有请求上发送通用 URL 参数?
AngularJS 应用程序的 CORS GET 中未发送 HTTP 标头