Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error:XMLHttpRequest failed: "Unable to connect to the Parse API" #667

Closed
vdwiroop opened this issue Feb 26, 2016 · 4 comments
Closed

Error:XMLHttpRequest failed: "Unable to connect to the Parse API" #667

vdwiroop opened this issue Feb 26, 2016 · 4 comments

Comments

@vdwiroop
Copy link

I am newbie having problem deploying parse server on to Heroku.

I updated my JavaScript SDK. Created Heroku account attached a MongoLab Database to it and created all necessary environment variable (In Heroku) and deployed Parse Example App to it. I updated index.js to below. and updated my Client code to run a simple query. But I get the below error.

What am I missing? Can someone point me to right direction?

Error:

Error:XMLHttpRequest failed: "Unable to connect to the Parse API"

My Index.js:

// Example express application adding the parse-server module to expose Parse
// compatible API routes.

var express = require('express');
var ParseServer = require('parse-server').ParseServer;

var databaseUri = process.env.DATABASE_URI || process.env.MONGOLAB_URI;

if (!databaseUri) {
console.log('DATABASE_URI not specified, falling back to localhost.');
}

var api = new ParseServer({
databaseURI: databaseUri || '',
cloud: './cloud/main.js',
appId: process.env.APP_ID || '',
restAPIKey: process.env.REST_API_KEY || '',
javascriptKey: process.env.JAVASCRIPT_KEY || '',
fileKey: process.env.FILE_KEY|| '',
serverURL: process.env.SERVER_URL || '',
masterKey: process.env.MASTER_KEY || '' //Add your master key here. Keep it secret!
});

var app = express();

// Serve the Parse API on the /parse URL prefix
var mountPath = process.env.PARSE_MOUNT || '/parse';
app.use(mountPath, api);

// Parse Server plays nicely with the rest of your web routes
app.get('/', function(req, res) {
res.status(200).send('I dream of being a web site.');
});

var port = process.env.PORT || 1337;
app.listen(port, function() {
console.log('parse-server-example running on port ' + port + '.');
});

Client code initialization:

  Parse.initialize("s57KWCMHm9dy6MRPYBwbVyBCjNC7itQOnfB5zYic", "unused");
  Parse.serverURL = 'https://myapp.herokuapp.com/';
@gfosco
Copy link
Contributor

gfosco commented Feb 26, 2016

You're missing the mount in the client code initialization.

Parse.serverURL = 'https://myapp.herokuapp.com/parse';

That should fix it..

@gfosco gfosco closed this as completed Feb 26, 2016
@vdwiroop
Copy link
Author

I am getting {"error":"unauthorized"} when I use with mount. I get the same error when I directly open the URL in the browser.

Any guidance please. I am using different login credentials (different databse userid ) to login to same database from Parse and Heroku. Could that be a problem?

@gfosco
Copy link
Contributor

gfosco commented Feb 26, 2016

unauthorized means you are hitting the parse-server but not succeeding in providing a matching app id and valid keys... The browser makes sense, because it's not meant to be viewed by a browser and the browser isn't passing an app id. So, how are your making the request which fails?... If you are defining any client keys (clientKey, javascriptKey, dotNetKey, restAPIKey) then you must also pass a valid client key... I recommend not setting any of those keys.

@vdwiroop
Copy link
Author

You are correct I removed all other key while making a request and it is working now!

Thanks a bunch!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants