I want to calculation the duration between to geolocalisation using leaflet routing machine but i got this error.
> message: "HTTP request failed: error" status: -1 target: ProgressEvent
> {isTrusted: true, lengthComputable: false, loaded: 0, total: 0, type:
> "error", …} url:
> "https://router.project-osrm.org/route/v1/car/2.279049917924877,48.83924675;2.2893811,48.8538898?overview=false&alternatives=true&steps=true&hints=;"
> __proto__: Object
Any solutions ?
you should overwrite the service url since https is not valid
use this property in options
serviceUrl: 'http://router.project-osrm.org/route/v1'
Related
I am using the export to spreadsheet control in SAPUI5 ( "sap/ui/export/Spreadsheet" described under https://sapui5.hana.ondemand.com/#/api/sap.ui.export.Spreadsheet).
When calling the odata Service without filters it works fine. When adding filters I get an 'uncaught in promise Unexpected Server Response' error in the frontend. What is the correct Url including filters that I have to specify under dataUrl?
Thank you for the help!
Christophe
So far I am trying with:
dataUrl: "/sap/opu/odata/sap//?$filter=Export eq 'X'"
oSettings = {
workbook: {
columns: aCols,
hierarchyLevel: "Level",
},
dataSource: {
type: "odata",
dataUrl: "/sap/opu/odata/sap/<myService>/<myEntitySet>?$filter=Export eq 'X'",
serviceUrl: oModelInterface.sServiceUrl,
headers: oModelInterface.getHeaders ? oModelInterface.getHeaders() : null,
count: oBinding.getLength ? oBinding.getLength() : null,
useBatch: true,
sizeLimit: oModelInterface.iSizeLimit
},
worker: false,
};
var oSpreadsheet = new Spreadsheet(oSettings);
oSpreadsheet.build();
There is an API for the download URL.
Just use oBinding.getDownloadUrl()
Just to be safe:
dataUrl: oRowBinding.getDownloadUrl ? oRowBinding.getDownloadUrl() : null
Reference: https://openui5.hana.ondemand.com/#/api/sap.ui.model.odata.v2.ODataListBinding
I'm getting what seems to be a common error. "No 'Access-Control-Allow-Origin' header is present" when I try to retrieve the contents of a website on a physical phone (in this case an Android phone).
I've experienced something similar with ionic server where it was getting CORS errors, and resolved it by using proxies in the ionic.config.json file. But I understand I shouldn't have that issue on a physical device.
// searchString = "https://swapi.co/api/films";
searchString = "https://www.example.com";
console.log(searchString);
self.httpClient.get(searchString, { responseType: 'text' }).subscribe(
(data: string) => {
console.log("my data: " + data + " " + searchString);
},
(error: HttpErrorResponse) => {
console.log("my err: " + error.message);
console.log(error);
}
);
When I run it on the phone, if I use https://swapi.co the code returns the web page I expect.
If I use https://www.example.com, I get the following error in the phone's console.
XMLHttpRequest cannot load https://www.example.com/. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8080' is therefore not allowed access. (index):1
my err: Http failure response for (unknown url): 0 Unknown Error 4.js:238
HttpErrorResponse {headers: HttpHeaders, status: 0, statusText: "Unknown Error", url: null, ok: false…}
error: XMLHttpRequestProgressEvent
headers: HttpHeaders
message: "Http failure response for (unknown url): 0 Unknown Error"
name: "HttpErrorResponse"
ok: false
status: 0
statusText: "Unknown Error"
url: null
__proto__: __
The "right" solution seems to be to add a Access-Control-Allow-Origin header to https://www.example.com (which is probably what the owner of http://swapie.co did); however, I don't control that server so I can't.
How can I convince httpClient not to expect these headers?
You can't. CORS is there to prevent what you're trying to do, block cross origin requests for unapproved origins. Best you can try to do is lie about your host but you'll have to throw out your http client and write your own. but IOS or android may have seen you coming and taken measures to prevent such things.
I'm trying to post a request through AWS API gateway with postman.
I have aws IAM on and it appears to be working. I can send a request with nothing in the body I get a 200 response back from my lambda function.
I would like to send a binary file in the body however whenever I add anything, form-data, raw or binary data to the body of the request I get this message:
{
"message": "The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.\n\nThe Canonical String for this request should have been\n'POST\ ..."
}
I have tried adding
image/png and application/octect-stream to Binary Media Types
and also tried specifying a model with just one field in it and that doesn't work either.
Any help would be much appreciated. I tried posting on AWS forums but there is no "post", "ask a question" or "create" button to actually ask a question, so back to old trusty stackoverflow.
Cheers. Mitch.
Edit API gateway setup:
openapi: 3.0.1
info:
title: AlarmEndpoints
version: '2019-03-02T03:22:39Z'
servers:
- url: https://602wer34n1.execute-api.ap-southeast-2.amazonaws.com/{basePath}
variables:
basePath:
default: /dev
paths:
/alarm/message:
post:
responses:
'200':
description: 200 response
content:
application/json:
schema:
$ref: '#/components/schemas/Empty'
security:
- sigv4: [
]
x-amazon-apigateway-integration:
uri: arn:aws:apigateway:ap-southeast-2:lambda:path/2015-03-31/functions/arn:aws:lambda:ap-southeast-2:962000000000:function:alarm_message/invocations
responses:
default:
statusCode: '200'
passthroughBehavior: when_no_match
httpMethod: POST
contentHandling: CONVERT_TO_TEXT
type: aws
components:
schemas:
Empty:
title: Empty Schema
type: object
securitySchemes:
sigv4:
type: apiKey
name: Authorization
in: header
x-amazon-apigateway-authtype: awsSigv4
x-amazon-apigateway-policy:
Version: '2012-10-17'
Statement:
- Effect: Allow
Principal:
AWS: arn:aws:iam::962000000000:user/alarm_user
Action: execute-api:Invoke
Resource: arn:aws:execute-api:ap-southeast-2:962000000000:*/*/*
Lambda Function:
import json
import os
import boto3
def lambda_handler(event, context):
var = os.environ.get("a_variable")
return {
'statusCode': 200,
'body': json.dumps({'message': 'Hello from Lambda 2!',
'echo': event,
'data': var})
}
I have a problem like this. I am new to react stuff. I used axios HTTP request npm package to write API call. But when I console log the response it says like this.
{data: {…}, status: 200, statusText: "OK", headers: {…}, config: {…}, …}
config: {adapter: ƒ, transformRequest: {…}, transformResponse: {…}, timeout: 0, xsrfCookieName: "XSRF-TOKEN", …}
data:
error: {code: 101, type: "missing_access_key", info: "You have not supplied an API Access Key. [Required format: access_key=YOUR_ACCESS_KEY]"}
success: false
__proto__: Object
headers: {content-type: "application/json; Charset=UTF-8"}
request: XMLHttpRequest {onreadystatechange: ƒ, readyState: 4, timeout: 0, withCredentials: false, upload: XMLHttpRequestUpload, …}
status: 200
statusText: "OK"
__proto__: Object
It says that I am not providing API_key. This is how I have written my code.
const access_key ='my_key'
axios.get(`http://data.fixer.io/api/2013-12-24
? access_key =${access_key} & base = LKR & symbols = ETH`)
.then(res=>{
console.log(res);
})
Can Someone help me to solve this problem?. Thank You.
An alternative
In case you're feeling tired of using a quite long string url which easily causes mistakes, the axios library already supports an alternative. Using like this:
const access_key ='my_key'
axios.get('http://data.fixer.io/api/2013-12-24', {
params: {
access_key: access_key,
base: LKR,
symbols: ETH
}
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
})
For reference: https://github.com/axios/axios#example
We are working on a Progessive Web App, for which the service worker intercepts the network traffic (via the fetch event handler). We have noticed, that sometimes a certain request fails here, because Request.cache is only-if-cached and Request.mode is no-cors, but not same-origin.
So it is similar to this problem.
Then I've noticed, that this happens only when the Chrome (v 65) DevTools are not opened. Does anybody notice the same phenomenon and does anybody have an idea, why this happens this way?
Parts of the request:
bodyUsed: false,
cache: "only-if-cached",
credentials: "include",
destination: "unknown",
headers: Headers {},
integrity: "",
method: "GET",
mode: "no-cors",
redirect: "follow",
referrer: "",
referrerPolicy: "no-referrer-when-downgrade",
url: "https://example.com/path/to/app-name/#!
We are handling this problem like this, but I'm afraid, that this is not appropriate.
serviceWorkerGlobal.addEventListener('fetch', function(event)
{
if (event.request.cache === 'only-if-cached' && event.request.mode !== 'same-origin') {
var oStrangeRequest = event.request.clone();
console.log('Fetch. Request cache has only-if-cached, but not same-origin.',
oStrangeRequest.cache, oStrangeRequest.mode,
'request redirect:',
oStrangeRequest.redirect, oStrangeRequest.url, oStrangeRequest);
return;
}
// ...
});
This is a bug. You can check the progress of the fix here: https://bugs.chromium.org/p/chromium/issues/detail?id=823392