angularjs $http.delete breaks on ie8

后端 未结 3 1805
情深已故
情深已故 2021-02-19 04:24
$http.delete(\'/api/carts/\' + productCode).
  success(function() {
    cart.products = someMethod();

    updateTotals();
  }).
  error(function() {
    console.log(\'C         


        
相关标签:
3条回答
  • 2021-02-19 05:07

    The problem is that delete is a javascript keyword and IE8 parses it slightly incorrectly. According to the standard, identifiers can be called delete. A quick fix is:

    $http['delete']('/api/carts/' + productCode)
    

    A little ugly, and I don't think the good angular people should have named that method delete, but that fixes your problem

    0 讨论(0)
  • 2021-02-19 05:20

    $http.delete(path) is a shortcut for DELETE requests. So as the shortcut breaks on IE8, besides calling by their uglly form: $http['delete'], you can call using the original mode:

    $http({method: 'DELETE', url: path})
    
    0 讨论(0)
  • 2021-02-19 05:26

    delete is the JavaScript reserved keyword, and IE parse it as a keyword. Here is the solution. http://tech.pro/tutorial/1238/angularjs-and-ie8-gotcha-http-delete

    Here is the javascript reserved keyword list

    http://www.w3schools.com/js/js_reserved.asp

    so its better to use $http['delete'] instead of $http.delete

    0 讨论(0)
提交回复
热议问题