我有一個彈簧RestController
,這是我使用SpringBoot開發的。
@RestController
@RequestMapping("/myRoot")
public class MyRestController {
@Autowired
private MyService myService;
@RequestMapping(value="/add/{myItem}", method=RequestMethod.POST)
public @ResponseBody void addMyItem(@PathVariable("myItem") String myItem){
myService.addMyItem(myItem);
}
}
含main
方法我的春天引導類是:
@SpringBootApplication(scanBasePackages={"org.mypackage"})
public class MyRestApp {
public static void main(String[] args) {
SpringApplication.run(MyRestApp .class, args);
}
}
當我編譯該項目運行生成的JAR在Eclipse的Java應用程序,控制檯顯示:
2017-03-17 22:33:14.363 INFO 2292 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)
2017-03-17 22:33:14.371 INFO 2292 --- [ main] o.n.todo.springboot.SuperrDuperrRestApp : Started MyRestApp in 7.056 seconds (JVM running for 7.837)
製作在郵政局Chrome上的http://localhost:8080/MyRestApi/myRoot/add/myItem
郵寄回電成功(200 OK)。
這意味着我的其餘api已正確顯示並正常運行。
我想上面休息URI調用從我AngularJs如下1個應用:
'use strict';
var myApp = angular.module("MyFirstAngularRestApp",[]);
myApp.controller("myCtrl",myCtrl);
function myCtrl($http){
console.log("myCtrl");
var REST_SERVICE_URI = 'http://localhost:8080/MyRestApi/';
this.AddItem = function(newItem){
console.log("AddItem");
console.log(newItem);
$http.post(this.REST_SERVICE_URI + 'myRoot/add/' + newItem).then(function(response){
console.log("success");
});
}
}
但是,這是行不通的。我收到以下錯誤:
XMLHttpRequest cannot load file:///C:/myDevelopment/Angular/MyAngularApp/undefinedtoDo/add/ReadABook. Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource.
Possibly unhandled rejection: {"data":null,"status":-1,"config":{"method":"POST","transformRequest":[null],"transformResponse":[null],"jsonpCallbackParam":"callback","url":"undefinedtoDo/addItem/Read a Book","headers":{"Accept":"application/json, text/plain, */*"}},"statusText":""}
我絕對新AngularJs 1,所以無法理解爲什麼我的REST調用是行不通的。我錯過了什麼?
我的AngularJs項目位於筆記本電腦驅動器的不同位置,而我的eclipse工作區是不同的目錄。但我相信這不應該是重要的。
我會很感激,如果有人能指導我如何解決這個錯誤。請儘可能詳細地回答,因爲我是新手。
謝謝!