
Research
Two Malicious Rust Crates Impersonate Popular Logger to Steal Wallet Keys
Socket uncovers malicious Rust crates impersonating fast_log to steal Solana and Ethereum wallet keys from source code.
Fetch-based HTTP requests
Timeout
JSONP
Using npm:
$ npm install fetch-s
Using CDN:
<script src="https://unpkg.com/fetch-s/dist/fetchs.min.js" />
Performing a GET
request
// Make a request for a user with a given ID
fetchs
.get('/user?ID=12345')
.then(function(response) {
console.log(response);
})
.catch(function(error) {
console.log(error);
});
// Optionally the request above could also be done as
fetchs
.get('/user', {
data: {
ID: 12345
}
})
.then(function(response) {
console.log(response);
})
.catch(function(error) {
console.log(error);
});
Performing a POST
request
fetchs
.post('/login', {
userName: 'reking',
password: 'xxx'
})
.then(function(response) {
console.log(response);
})
.catch(function(error) {
console.log(error);
});
Performing a JSONP
request
// Make a request for a user with a given ID
fetchs
.jsonp('/user?ID=12345')
.then(function(response) {
console.log(response);
})
.catch(function(error) {
console.log(error);
});
// Optionally the request above could also be done as
fetchs
.jsonp('/user', {
data: {
ID: 12345
}
})
.then(function(response) {
console.log(response);
})
.catch(function(error) {
console.log(error);
});
These are the available config options for making requests. Only the url
is required. Requests will default to GET
if method
is not specified.
{
// request type
method: 'GET', // default
//`url` is the request path
//If u is a relative path, it will be combined with `origin` to form a complete path
url:'',
//`data` are the request parameters
data:{
id: 1
},
// `responseType` indicates the type of data that the server will respond with
// options are 'arrayBuffer', 'blob', 'formData', 'text', 'json'
dataType: 'json',
//`origin` is the request baseURL
origin: '',
//`mode` is the request mode ("same-origin"、"no-cors"、"cors")
mode: 'cors', // default
// Sending a request with credentials included
//To cause browsers to send a request with credentials included, even for a cross-origin call, add credentials: 'include' to the init object you pass to the fetch() method.
//If you only want to send credentials if the request URL is on the same origin as the calling script, add credentials: 'same-origin'.
//To instead ensure browsers don’t include credentials in the request, use credentials: 'omit'.
credentials: 'include',// default
//`timeout` specifies the number of milliseconds before the request times out
timeout: 30000, // default
// `headers` the headers that the server request with
headers: {}
}
The response for a request contains the following information.
{
// `data` is the response that was provided by the server
data: {},
// `config` is the config that was provided to `fetch-s` for the request
config: {},
// `status` is the HTTP status code from the server response
status: 200,
// `statusText` is the HTTP status message from the server response
statusText: 'OK',
//Contains a boolean stating whether the response was successful (status in the range 200-299) or not.
ok: true,
//`redirect` is to identify if the request has redirects
redirected: false,
// `headers` the headers that the server responded with
headers: {},
// `body` the body that the server responded with
body: ReadableStream
}
You can intercept requests or responses before they are handled by then
or catch
.
// Add a request interceptor
fetchs.interceptors.request.use(
function(config) {
// Do something before request is sent
return config;
},
function(error) {
// Do something with request error
return Promise.reject(error);
}
);
// Add a response interceptor
fetchs.interceptors.response.use(
function(response) {
// Do something with response data
return response;
},
function(error) {
// Do something with response error
return Promise.reject(error);
}
);
// Set config defaults when creating the instance
var instance = fetchs.create({
origin: 'https://www.example.com'
});
//and use it
instance
.get('/user?ID=12345')
.then(function(response) {
console.log(response);
})
.catch(function(error) {
console.log(error);
});
FAQs
Fetch-based HTTP requests
We found that fetch-s demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Socket uncovers malicious Rust crates impersonating fast_log to steal Solana and Ethereum wallet keys from source code.
Research
A malicious package uses a QR code as steganography in an innovative technique.
Research
/Security News
Socket identified 80 fake candidates targeting engineering roles, including suspected North Korean operators, exposing the new reality of hiring as a security function.